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.onLoad(() => { console.log('激励视频 广告加载成功'); }); videoAd.onError((err) => { console.log('onError event emit'); }); } // return videoAd; } }, /** * @param {String} adUnitId 小程序广告视频id * videoAdInit 初始化插屏广告 */ insertVideoAdInit(adUnitId) { if (videoAd) { videoAd = null; } if (uni.createInterstitialAd) { videoAd = uni.createInterstitialAd({ adUnitId: adUnitId, }); if (videoAd) { videoAd.onLoad(() => { console.log('插屏视频 广告加载成功'); }); videoAd.onError((err) => { console.log('onError event emit'); }); } // return videoAd; } }, /* 显示广告 ture为播放完成 */ videoAdShow() { return new Promise((resolve, reject) => { adVideoUtils._showAd().then((val) => { if (val) { videoAd.onClose((res) => { videoAd.offClose(); if (res.isEnded) { //成功 给予奖励 resolve(true); } else { resolve(false); } }); videoAd.onError((err) => { if (err.errCode == "1004") { reject("1004"); } else { reject(err); } }); } else { resolve(true); //reject(err); } }); }); }, _showAd() { return new Promise((resolve) => { videoAd .show() .then(() => { console.log("广告显示成功"); uni.setStorageSync("adClick", false); resolve(true); }) .catch((err) => { console.log("广告组件出现问题", err); // 可以手动加载一次 videoAd .load() .then(() => { console.log("手动加载成功"); uni.setStorageSync("adClick", false); resolve(true); // 加载成功后需要再显示广告 return videoAd.show(); }) .catch((err) => { resolve(false); console.log("广告组件出现问题2次加载", err); // this.showUToast("加载失败啦,请稍后在试", "error"); }); }); }); }, }; export default adVideoUtils;