封装一个 uniapp 激励视频广告工具,方便在小程序中统一调用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| let videoAd = null;
let adVideoUtils = {
videoAdInit(adUnitId) { if (videoAd) { videoAd = null; } if (uni.createRewardedVideoAd) { videoAd = uni.createRewardedVideoAd({ adUnitId: adUnitId, }); if (videoAd) { videoAd.onError((err) => { console.log(err); }); } } },
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); }); }); }); }, };
export default adVideoUtils;
|
引入后注册使用:
1 2 3 4 5
| import adVideoUtils from "./../adVideoUtils";
Vue.prototype.$utils = { ...adVideoUtils, };
|
页面中使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| this.$utils.videoAdInit(adUnitId);
this.$utils .videoAdShow() .then((res) => { if (res) { this.adVideoRes(); } else { this.adVideoErr(); } }) .catch((err) => { this.showUToast("视频加载失败了,稍后在试", "error"); });
|