| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | <template>    <view>        <page-head :title="title"></page-head>        <view class="uni-padding-wrap uni-common-mt">            <button v-if="!loadError" :loading="loading" :disabled="loading" type="primary" class="btn" @click="show">显示广告</button>            <button v-if="loadError" :loading="loading" :disabled="loading" type="primary" class="btn" @click="reloadAd">重新加载广告</button>        </view>        <!-- #ifndef APP-PLUS -->        <view class="ad-tips">            <text>小程序端的广告ID由小程序平台提供</text>        </view>        <!-- #endif -->    </view></template><script>    const ERROR_CODE = [-5001, -5002, -5003, -5004, -5005, -5006];    export default {        data() {            return {                title: '激励视频广告',                loading: false,                loadError: false            }        },        onReady() {            // #ifdef APP-PLUS            this.adOption = {                adpid: '1507000689'            };            // #endif            // #ifdef MP-WEIXIN            this.adOption = {                adUnitId: ''            };            // #endif            this.createAd();        },        methods: {            createAd() {                var rewardedVideoAd = this.rewardedVideoAd = uni.createRewardedVideoAd(this.adOption);                rewardedVideoAd.onLoad(() => {                    this.loading = false;                    this.loadError = false;                    console.log('onLoad event')                });                rewardedVideoAd.onClose((res) => {                    this.loading = true;                    // 用户点击了【关闭广告】按钮                    if (res && res.isEnded) {                        // 正常播放结束                        console.log("onClose " + res.isEnded);                    } else {                        // 播放中途退出                        console.log("onClose " + res.isEnded);                    }                    setTimeout(() => {                        uni.showToast({                            title: "激励视频" + (res.isEnded ? "成功" : "未") + "播放完毕",                            duration: 10000,                            position: 'bottom'                        })                    }, 500)                });                rewardedVideoAd.onError((err) => {                    this.loading = false;                    if (err.code && ERROR_CODE.indexOf(err.code) !== -1) {                        this.loadError = true;                    }                    console.log('onError event', err)                });                this.loading = true;            },            show() {                const rewardedVideoAd = this.rewardedVideoAd;                rewardedVideoAd.show().catch(() => {                    rewardedVideoAd.load()                        .then(() => rewardedVideoAd.show())                        .catch(err => {                            console.log('激励视频 广告显示失败', err)                            uni.showToast({                                title: err.errMsg || err.message,                                duration: 5000,                                position: 'bottom'                            })                        })                })            },            reloadAd() {                this.loading = true;                this.rewardedVideoAd.load();            }        }    }</script><style>    .btn {        margin-bottom: 20px;    }    .ad-tips {        color: #999;        padding: 30px 0;        text-align: center;    }</style>
 |