uniapp广告组件<ad-rewarded-video></ad-rewarded-video>打包app应用正式包不显示

bug背景:

        项目使用<ad-rewarded-video></ad-rewarded-video>打包正式包不显示广告也不报错,

        项目是使用cli命令行创建的项目

        但是小程序却是可以正常显示广告

bug分析

 可能是由于红色部分在app端未正确识别导致的,该文件位于项目\node_modules\@dcloudio\uni-cli-shared\components

bug修改方式

将上面文件修改如下即可 

<template>
  <view @click="_onclick">
    <slot :options="options" :loading="loading" :error="errorMessage" />
    <!-- #ifdef MP-WEIXIN -->
    <uniad-plugin class="uniad-plugin" :adpid="adpid" :unit-id="unitId" @load="_onmpload" @close="_onmpclose"
      @error="_onmperror"></uniad-plugin>
    <!-- #endif -->
    <!-- #ifdef MP-ALIPAY -->
    <uniad-plugin class="uniad-plugin" :adpid="adpid" @create="_handleAdRef" @load="_onmpload" @close="_onmpclose"
      @error="_onmperror"></uniad-plugin>
    <!-- #endif -->
  </view>
</template>

<script>
// #ifdef APP
import adMixinApp from "./ad.mixin.app.js"
// #endif
// #ifdef H5
import adMixinH5 from "./ad.mixin.web.js"
// #endif
// #ifdef MP-WEIXIN
import adMixinWeixin from "./ad.mixin.mp-weixin.js"
// #endif
// #ifdef MP-ALIPAY
import adMixinAlipay from "./ad.mixin.mp-alipay.js"
// #endif

const adMixin = adMixinApp || adMixinH5 || adMixinWeixin || adMixinAlipay


export default {
  name: 'AdRewardedVideo',
  mixins: [adMixin],
  props: {
    adType: {
      type: String,
      default: 'RewardedVideo'
    }
  },
  methods: {}
}
</script>

 

### uni-app 微信小程序 开屏广告实现方法 在uni-app开发的小程序中,开屏广告可以通过集成特定的API来实现。对于微信小程序而言,全屏视频广告是一个原生组件,具有较高的层级优先级[^1]。 #### 创建和初始化全屏视频广告实例 为了展示开屏广告,在页面加载初期就需要创建并初始化`FullScreenVideoAd`对象: ```javascript let fullScreenVideoAd = null; if (wx.createInterstitialAd) { try{ fullScreenVideoAd = wx.createRewardedVideoAd({ adUnitId: 'your_ad_unit_id' }); fullScreenVideoAd.onLoad(() => {}); fullScreenVideoAd.onError((err) => {}); fullScreenVideoAd.onClose((res) => {}); } catch(e){ console.error('Failed to create rewarded video ad:', e); } } ``` 需要注意的是上述代码中的`adUnitId`应替换为实际申请到的广告位ID。 #### 显示开屏广告逻辑控制 当应用程序启动后久即准备显示广告之前,可以调用`.show()`方法使该广告可见;考虑到用户体验以及可能存在的网络延迟等因素,建议设置合理的时机触发此操作,比如等待几秒钟后再尝试播放广告或是在某些业务流程完成后立即呈现给用户查看。 ```javascript // 延迟一段时间再显示广告 setTimeout(function(){ if(fullScreenVideoAd && typeof fullScreenVideoAd.show === "function"){ fullScreenVideoAd.show().catch(err=>{ console.warn('Failed to show rewarded video ad', err); }); } }, 3000); // 这里假设延时三秒作为例子 ``` 由于全屏视频广告默认情况下是处于隐藏状态下的,因此显式地调用`.show()`函数是非常必要的步骤之一。 #### 广告源配置与管理 针对app端的应用场景,广告资源通常来源于像腾讯优量汇这样的第三方广告服务商,并通过DCloud进行了统一管理和分发处理。而对于微信小程序来说,则是由微信公众平台本身所提供的服务支持着这类功能特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值