admin
2022-01-12 8327000a0cce5e47226372e0e25c1e6faec497e7
lib/utils/ad_util.dart
@@ -7,30 +7,34 @@
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") {
@@ -78,14 +82,14 @@
    }
  }
  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;
    }
@@ -157,7 +161,7 @@
          //穿山甲广告 ios appid 必填
          useTextureView: false,
          //使用TextureView控件播放视频,默认为SurfaceView,当有SurfaceView冲突的场景,可以使用TextureView 选填
          appName: "定位追踪轨迹",
          appName: Constant.APP_NAME,
          //appname 必填
          allowShowNotify: true,
          //是否允许sdk展示通知栏提示 选填
@@ -174,11 +178,11 @@
    }
  }
  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宽高
@@ -286,7 +290,7 @@
    );
  }
  static loadReward(String pid, OnAdCallback adCallback) async {
  static loadReward(String pid, OnRewardAdCallback adCallback) async {
    FlutterUnionad.loadRewardVideoAd(
      mIsExpress: true,
      //是否个性化 选填
@@ -315,23 +319,25 @@
        },
        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();
        },
@@ -400,7 +406,7 @@
    }
  }
  static Widget? loadSplash(
  static Widget loadSplash(
      String? pid, double width, double height, OnAdCallback adCallback) {
    return FlutterTencentad.splashAdView(
      //android广告id
@@ -499,7 +505,7 @@
        ));
  }
  static loadReward(String pid, OnAdCallback adCallback) async {
  static loadReward(String pid, OnRewardAdCallback adCallback) async {
    await FlutterTencentad.loadRewardVideoAd(
        //android广告id
        androidId: pid,
@@ -521,19 +527,22 @@
        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("激励广告完成");
      }),