zoukankan      html  css  js  c++  java
  • 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");
            });    
  • 相关阅读:
    202020211 20209326 《Linux内核原理与分析》第一周作业
    指针入门,以及利用指针简单的数组逆置
    函数入门
    C语言关于处理数组元素的插入、删除、排序
    flag用法之一
    css3中的transform值matrix
    HTML5CANVAS做的打砖块游戏。。。
    用curl抓取网站数据,仿造IP、防屏蔽终极强悍解决方式
    javascript中最好用的extend继承方法
    使用CSS3中Media Queries兼容不同设备
  • 原文地址:https://www.cnblogs.com/ZeroShiro/p/13530805.html
Copyright © 2011-2022 走看看