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");
            });    
  • 相关阅读:
    PAT甲级——A1148 WerewolfSimpleVersion【20】
    kruskal算法【最小生成树2】
    prim算法【最小生成树1】
    最小生成树
    关键路径详解
    「日常训练&知识学习」树的直径(POJ-1849,Two)
    「日常训练」Balancing Act(POJ-1655)
    「日常训练」Duff in the Army (Codeforces Round #326 Div.2 E)
    「题目代码」P1054~P1059(Java)
    「日常训练」All Friends(POJ-2989)
  • 原文地址:https://www.cnblogs.com/ZeroShiro/p/13530805.html
Copyright © 2011-2022 走看看