export 'flutter_union_ad_stream.dart'; export 'flutter_union_ad_code.dart.dart'; import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:union_ad_ssgf/banner/banner_ad_view.dart'; import 'package:union_ad_ssgf/splash/splash_ad_view.dart'; import 'flutter_union_ad_code.dart.dart'; import 'express/express_ad_view.dart'; part 'flutter_union_ad_callback.dart'; part 'flutter_unio_ad_bidding_controller.dart'; class FlutterUnionAd { static const MethodChannel _channel = MethodChannel('flutter_union_ad'); /// SDK注册初始化 /// [androidId] androidId 必填 /// [iosId] iosId 必填 /// [channelId] channelId 渠道id [FlutterTencentadChannel] /// [personalized] personalized 是否开启个性化广告 [FlutterTencentadPersonalized] static Future register({ required String androidId, required String iosId, int? personalized, bool? debug, int? channelId, }) async { return await _channel.invokeMethod("register", { "androidId": androidId, "iosId": iosId, "debug": debug ?? false, "channelId": channelId ?? FlutterTencentadChannel.other, "personalized": personalized ?? FlutterTencentadPersonalized.show, }); } /// 获取SDK版本号 static Future getSDKVersion() async { return await _channel.invokeMethod("getSDKVersion"); } /// 激励视频广告预加载 /// [androidId] android 广告ID /// [iosId] ios 广告ID /// [rewardName] 奖励名称 /// [rewardAmount] 奖励金额 /// [userID] 用户id /// [customData] 扩展参数,服务器回调使用 /// [downloadConfirm] 下载二次确认弹窗 默认false /// [videoMuted] 是否静音 默认false /// [isBidding] 是否开启竞价模式 默认false static Future loadRewardVideoAd({ required String androidId, required String iosId, required String rewardName, required int rewardAmount, required String userID, String? customData, bool? downloadConfirm, bool? videoMuted, bool? isBidding, }) async { return await _channel.invokeMethod("loadRewardVideoAd", { "androidId": androidId, "iosId": iosId, "rewardName": rewardName, "rewardAmount": rewardAmount, "userID": userID, "customData": customData ?? "", "videoMuted": videoMuted ?? false, "downloadConfirm": downloadConfirm ?? false, "isBidding": isBidding ?? false, }); } /// 显示激励广告 /// [result] 竞价成功、失败后调用 [FlutterUnioAdBiddingResult] ,isBidding = true时必传 static Future showRewardVideoAd({ FlutterUnioAdBiddingResult? result, }) async { return await _channel.invokeMethod( "showRewardVideoAd", result?.toJson() ?? {}, ); } /// 预加载插屏广告 /// [androidId] android广告ID /// [iosId] ios广告ID /// [isFullScreen] 是否全屏 /// [downloadConfirm] 下载二次确认弹窗 默认false /// [isBidding] 是否开启竞价模式 默认false static Future loadUnifiedInterstitialAD({ required String androidId, required String iosId, required bool isFullScreen, bool? downloadConfirm, bool? isBidding, }) async { return await _channel.invokeMethod("loadInterstitialAD", { "androidId": androidId, "iosId": iosId, "isFullScreen": isFullScreen, "downloadConfirm": downloadConfirm ?? false, "isBidding": isBidding ?? false, }); } /// 显示新模板渲染插屏 /// [result] 竞价成功、失败后调用 [FlutterUnioAdBiddingResult] ,isBidding = true时必传 static Future showUnifiedInterstitialAD({ FlutterUnioAdBiddingResult? result, }) async { return await _channel.invokeMethod( "showInterstitialAD", result?.toJson() ?? {}, ); } /// /// banner广告 /// [androidId] android广告ID /// [iosId] ios广告ID /// [viewWidth] 广告宽 单位dp /// [viewHeight] 广告高 单位dp 宽高比应该为6.4:1 /// [FlutterUnionAdBannerCallBack] 广告回调 /// [downloadConfirm] 下载二次确认弹窗 默认false /// [isBidding] 是否开启竞价模式 默认false /// [bidding] 竞价成功、失败后调用 [FlutterUnioAdBiddingController] ,isBidding = true时必传 static Widget bannerAdView({ required String androidId, required String iosId, required double viewWidth, required double viewHeight, bool? downloadConfirm, bool? isBidding, FlutterUnioAdBiddingController? bidding, FlutterUnionAdBannerCallBack? callBack, }) { return BannerAdView( androidId: androidId, iosId: iosId, viewWidth: viewWidth, viewHeight: viewHeight, callBack: callBack, downloadConfirm: downloadConfirm ?? false, isBidding: isBidding ?? false, bidding: bidding, ); } /// 开屏广告 /// [androidId] android广告ID /// [iosId] ios广告ID /// [fetchDelay] 设置开屏广告从请求到展示所花的最大时长(并不是指广告曝光时长),取值范围为[1500, 5000]ms。如果需要使用默认值,可以调用上一个构造方法,或者给 fetchDelay 设为0。 /// [FlutterUnionAdSplashCallBack] 广告回调 /// [downloadConfirm] 下载二次确认弹窗 默认false /// [isBidding] 是否开启竞价模式 默认false /// [bidding] 竞价成功、失败后调用 [FlutterUnioAdBiddingController] ,isBidding = true时必传 static Widget splashAdView({ required String androidId, required String iosId, required int fetchDelay, bool? downloadConfirm, bool? isBidding, FlutterUnioAdBiddingController? bidding, FlutterUnionAdSplashCallBack? callBack, }) { return SplashAdView( androidId: androidId, iosId: iosId, fetchDelay: fetchDelay, callBack: callBack, downloadConfirm: downloadConfirm ?? false, isBidding: isBidding ?? false, bidding: bidding, ); } /// 动态信息流/横幅/视频贴片广告 /// [androidId] android广告ID /// [iosId] ios广告ID /// [viewWidth] 广告宽 单位dp /// [viewHeight] 广告高 单位dp /// [FlutterUnionAdExpressCallBack] 回调事件 /// [downloadConfirm] 下载二次确认弹窗 默认false /// [isBidding] 是否开启竞价模式 默认false /// [bidding] 竞价成功、失败后调用 [FlutterUnioAdBiddingController] ,isBidding = true时必传 static Widget expressAdView({ required String androidId, required String iosId, required int viewWidth, required int viewHeight, bool? downloadConfirm, bool? isBidding, FlutterUnioAdBiddingController? bidding, FlutterUnionAdExpressCallBack? callBack, }) { return ExpressAdView( androidId: androidId, iosId: iosId, viewWidth: viewWidth, viewHeight: viewHeight, callBack: callBack, downloadConfirm: downloadConfirm ?? false, isBidding: isBidding ?? false, bidding: bidding, ); } ///进入APP下载列表页 static Future enterAPPDownloadListPage() async { return await _channel.invokeMethod("enterAPPDownloadListPage", {}); } }