| | |
| | | import 'package:locations/utils/string_util.dart'; |
| | | import 'package:flutter_tencentad/flutter_tencentad.dart'; |
| | | |
| | | import 'ui_constant.dart'; |
| | | |
| | | //紧急联系人输入框确定事件 |
| | | typedef OnAdCallback = void Function(bool success, String msg); |
| | | |
| | | typedef OnRewardAdCallback = void Function(RewardAdStatus status, String msg); |
| | | |
| | | enum RewardAdStatus { fail, click, ready, verify, close } |
| | | |
| | | class AdUtil { |
| | | static AdinfoModel? splashAdInfo; |
| | | |
| | | static Future init() async { |
| | | await CSJAdUtil.init(); |
| | | await GDTAdUtil.init(); |
| | | splashAdInfo = await getAdInfo(AdPosition.splash); |
| | | } |
| | | |
| | | static void showSplashAd( |
| | | double width, double height, OnAdCallback adCallback) async { |
| | | //加载广告 |
| | | } |
| | | |
| | | static Widget? loadSplash(AdinfoModel? adInfo, double width, double height, |
| | | static Widget loadSplash(AdinfoModel? adInfo, double width, double height, |
| | | OnAdCallback adCallback) { |
| | | if (adInfo == null) { |
| | | adCallback(false, "广告信息为空"); |
| | | return null; |
| | | return Container(); |
| | | } |
| | | |
| | | if (StringUtil.isNullOrEmpty(adInfo.type)) { |
| | | adCallback(false, "广告类型为空"); |
| | | return null; |
| | | return Container(); |
| | | } |
| | | |
| | | if (adInfo.type == "csj") { |
| | |
| | | } |
| | | } |
| | | |
| | | static loadReward(AdinfoModel? adInfo, OnAdCallback callback) async { |
| | | static loadReward(AdinfoModel? adInfo, OnRewardAdCallback callback) async { |
| | | if (adInfo == null) { |
| | | callback(false, "广告信息为空"); |
| | | callback(RewardAdStatus.fail, "广告信息为空"); |
| | | return null; |
| | | } |
| | | |
| | | if (StringUtil.isNullOrEmpty(adInfo.type)) { |
| | | callback(false, "广告类型为空"); |
| | | callback(RewardAdStatus.fail, "广告类型为空"); |
| | | return null; |
| | | } |
| | | |
| | |
| | | //穿山甲广告 ios appid 必填 |
| | | useTextureView: false, |
| | | //使用TextureView控件播放视频,默认为SurfaceView,当有SurfaceView冲突的场景,可以使用TextureView 选填 |
| | | appName: "定位追踪轨迹", |
| | | appName: Constant.APP_NAME, |
| | | //appname 必填 |
| | | allowShowNotify: true, |
| | | //是否允许sdk展示通知栏提示 选填 |
| | |
| | | } |
| | | } |
| | | |
| | | static Widget? loadSplash( |
| | | static Widget loadSplash( |
| | | String? pid, double width, double height, OnAdCallback adCallback) { |
| | | if (pid == null) { |
| | | adCallback(false, "pid为空"); |
| | | return null; |
| | | return Container(); |
| | | } |
| | | return FlutterUnionad.splashAdView( |
| | | //是否使用个性化模版 设定widget宽高 |
| | |
| | | ); |
| | | } |
| | | |
| | | static loadReward(String pid, OnAdCallback adCallback) async { |
| | | static loadReward(String pid, OnRewardAdCallback adCallback) async { |
| | | FlutterUnionad.loadRewardVideoAd( |
| | | mIsExpress: true, |
| | | //是否个性化 选填 |
| | |
| | | }, |
| | | onClick: () { |
| | | print("激励广告点击"); |
| | | adCallback(RewardAdStatus.click, "激励广告点击"); |
| | | }, |
| | | onFail: (error) { |
| | | print("激励广告失败 $error"); |
| | | adCallback(false, "激励广告失败 $error"); |
| | | adCallback(RewardAdStatus.fail, "激励广告失败 $error"); |
| | | }, |
| | | onClose: () { |
| | | print("激励广告关闭"); |
| | | adCallback(RewardAdStatus.close, "激励广告关闭"); |
| | | }, |
| | | onSkip: () { |
| | | print("激励广告跳过"); |
| | | }, |
| | | onVerify: (bool isVerify, int rewardAmount, String rewardName, |
| | | int errorCode, String message) { |
| | | adCallback(true, "获取激励成功"); |
| | | adCallback(RewardAdStatus.verify, "获取激励成功"); |
| | | }, |
| | | onReady: () async { |
| | | print("激励广告预加载准备就绪"); |
| | | adCallback(RewardAdStatus.ready, "激励广告预加载准备就绪"); |
| | | //显示激励广告 |
| | | await FlutterUnionad.showRewardVideoAd(); |
| | | }, |
| | |
| | | } |
| | | } |
| | | |
| | | static Widget? loadSplash( |
| | | static Widget loadSplash( |
| | | String? pid, double width, double height, OnAdCallback adCallback) { |
| | | return FlutterTencentad.splashAdView( |
| | | //android广告id |
| | |
| | | )); |
| | | } |
| | | |
| | | static loadReward(String pid, OnAdCallback adCallback) async { |
| | | static loadReward(String pid, OnRewardAdCallback adCallback) async { |
| | | await FlutterTencentad.loadRewardVideoAd( |
| | | //android广告id |
| | | androidId: pid, |
| | |
| | | print("激励广告显示"); |
| | | }, onClick: () { |
| | | print("激励广告点击"); |
| | | adCallback(RewardAdStatus.click, "激励广告点击"); |
| | | }, onFail: (code, message) { |
| | | print("激励广告失败 $code $message"); |
| | | adCallback(false, "激励广告失败"); |
| | | adCallback(RewardAdStatus.fail, "激励广告失败"); |
| | | }, onClose: () { |
| | | print("激励广告关闭"); |
| | | adCallback(RewardAdStatus.close, "激励广告关闭"); |
| | | }, onReady: () async { |
| | | print("激励广告预加载准备就绪"); |
| | | adCallback(RewardAdStatus.ready, "激励广告预加载准备就绪"); |
| | | await FlutterTencentad.showRewardVideoAd(); |
| | | }, onUnReady: () { |
| | | print("激励广告预加载未准备就绪"); |
| | | }, onVerify: (transId, rewardName, rewardAmount) { |
| | | print("激励广告奖励 $transId $rewardName $rewardAmount"); |
| | | adCallback(true, "激励广告奖励"); |
| | | adCallback(RewardAdStatus.verify, "激励广告奖励"); |
| | | }, onFinish: () { |
| | | print("激励广告完成"); |
| | | }), |