• uniapp 封装小程序激励视频


    let videoAd = null;
    let adVideoUtils = {
      /**
       * @param {String} adUnitId 小程序广告视频id
       * videoAdInit 初始化广告
       */
      videoAdInit(adUnitId) {
        if (videoAd) {
          videoAd = null;
        }
        if (uni.createRewardedVideoAd) {
          videoAd = uni.createRewardedVideoAd({
            adUnitId: adUnitId,
          });
          if (videoAd) {
            videoAd.onError((err) => {
              console.log(err);
            });
          }
          // return videoAd;
        }
      },
      /* 显示广告 ture为播放完成 */
      videoAdShow() {
        return new Promise((resolve, reject) => {
          adVideoUtils._showAd().then((val) => {
            if (val) {
              videoAd.onClose((res) => {
                if (res.isEnded) {
                  //成功 给予奖励
                  resolve(true);
                } else {
                  resolve(false);
                }
              });
              videoAd.onError((err) => {
                if (err.errCode == "1004") {
                  reject("1004");
                } else {
                  reject(err);
                }
              });
            } else {
              reject(err);
            }
          });
        });
      },
      _showAd() {
        return new Promise((resolve) => {
          videoAd
            .show()
            .then(() => {
              console.log("广告显示成功");
              resolve(true);
            })
            .catch((err) => {
              console.log("广告组件出现问题", err);
              // 可以手动加载一次
              videoAd
                .load()
                .then(() => {
                  console.log("手动加载成功");
                  resolve(true);
                  // 加载成功后需要再显示广告
                  return videoAd.show();
                })
                .catch((err) => {
                  resolve(false);
                  console.log("广告组件出现问题2次加载", err);
                  // this.showUToast("加载失败啦,请稍后在试", "error");
                });
            });
        });
      },
    };
    export default adVideoUtils;
    引入后注册使用
    import adVideoUtils from "./../adVideoUtils";
    
    Vue.prototype.$utils = {
      ...adVideoUtils,
    };
    // onLoad 中 
    this.$utils.videoAdInit(adUnitId);
    
    // 显示
    this.$utils.videoAdShow()
            .then((res) => {
              if (res) {
               // 成功
                this.adVideoRes();
              } else {
                this.adVideoErr();
              }
            })
            .catch((err) => {
              this.showUToast("视频加载失败了,稍后在试", "error");
            });    
  • 相关阅读:
    可怕的沉默
    我排着队 拿着号码牌
    移动改名正在运行的程序
    C# 注册热键
    c#通过编码检查是否有PendingChanges没有签入
    c#读取带命名空间的xml
    自动查找并关闭窗口
    C# 应用微软的Visual Studio International Pack 类库提取汉字拼音首字母
    C#执行DOS命令(CMD命令) (转)
    asp.net 文件下载,有进度条
  • 原文地址:https://www.cnblogs.com/ZeroShiro/p/13530805.html
Copyright © 2020-2023  润新知