小程序激励广告视频多次回调问题

1.问题

2. 激励视频使用及解决方案

官方文档

javascript 复制代码
let videoAd = null; // 在页面中定义激励视频广告
Page({
  /**
   * 页面的初始数据
   */
  data: {},

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    let that = this;
    // 创建激励视频广告实例
    if (wx.createRewardedVideoAd) {
      videoAd = wx.createRewardedVideoAd({
        adUnitId: 'xxx',
      });

      //解决多次事件回调
      try {
        if (videoAd.closeHandler) {
          videoAd.offClose(videoAd.closeHandler);
          //   console.log("videoAd.offClose卸载成功");
        }
      } catch (e) {
        // console.log("videoAd.offClose 卸载失败");
        console.error(e);
      }
      videoAd.closeHandler = function (res) {
        // 用户点击了【关闭广告】按钮
        if ((res && res.isEnded) || res === undefined) {
          // 正常播放结束,可以下发游戏奖励
          console.log('正常播放完成',res)
        } else {
          //提前关闭小程序
          console.log('中途退出', res);
        }
      };
      videoAd.onClose(videoAd.closeHandler);
    }
  },

  onShowVideo() {
    // 用户点击后,显示激励视频广告
    if (videoAd) {
      videoAd.show().catch((err) => {
        // 失败重试
        videoAd
          .load()
          .then(() => videoAd.show())
          .catch((err) => {
            console.error('激励视频 广告显示失败', err);
          });
      });
    }
  },
});
相关推荐
前端若水2 分钟前
过渡(transition)高级:贝塞尔曲线、硬件加速
前端·css·css3
Lee川4 分钟前
Token 无感刷新与 Logout:前端安全会话管理实战
前端·后端·react.js
不会敲代码17 分钟前
我写了一个 HTML 文件,把 JS 事件循环彻底搞懂了
前端·javascript·面试
写不来代码的草莓熊14 分钟前
SVG 图标插件误读 PNG 图片 + Vite 重启缓存失效重新生成 + 浏览器严格渲染
前端
燐妤20 分钟前
前端HTML编程3:初识CSS
前端·html5
UXbot22 分钟前
独立设计师UI设计工具推荐(2026):支持AI原型生成与代码导出的5款工具全面评价
前端·人工智能·低代码·ui·交互·产品经理·web app
anOnion1 小时前
构建无障碍组件之Table Pattern
前端·html·交互设计
mfxcyh1 小时前
如何把对象数据转化为数组
java·服务器·前端
编程技术手记1 小时前
Vite 开发环境前后端端口隔离:解决 index.html 冲突问题
前端·html
光影少年2 小时前
react16-react19类组件完整生命周期(挂载/更新/卸载)
前端·javascript·react.js