uni-app 微信小程序端vue3编译原生模块广告组件(ad-custom)异常

发布于 1周前 作者 eggper 来自 Uni-App

uni-app 微信小程序端vue3编译原生模块广告组件(ad-custom)异常

操作步骤:

  • 运行demo文件,更改项目为vue3编译模式,运行至微信小程序端

预期结果:

  • vue2下:显示广告
  • vue3下:显示广告

实际结果:

  • vue2下:显示广告
  • vue3下:不显示广告

bug描述:

微信小程序端:vue3版本不支持原生模板广告,会提示广告id为空(原生wxml文件中不显示广告id),换成vue2版本后正常, demo如附件所示,可切换vue版本进行复现

信息类别 详情
产品分类 uniapp/小程序/微信
PC开发环境 Windows
HBuilderX类型 正式
HBuilderX版本 3.4.7
项目创建方式 HBuilderX

下载附件


4 回复

今天发版修复此问题,并不是广告问题,是组件名字问题


HBuilderX alpha 3.4.13 已修复

uni-app 中,微信小程序端的 ad-custom 组件是用于展示自定义广告的组件。如果你在使用 vue3 编译时遇到 ad-custom 组件异常,可能是由于以下原因导致的。以下是一些常见的排查和解决方法:


1. 检查 ad-custom 组件的使用方式

确保你按照微信小程序的官方文档正确使用 ad-custom 组件。以下是一个基本示例:

<template>
  <view>
    <ad-custom
      unit-id="your-ad-unit-id"
      @load="onAdLoad"
      @error="onAdError"
    ></ad-custom>
  </view>
</template>

<script setup>
const onAdLoad = (event) => {
  console.log('广告加载成功', event);
};

const onAdError = (event) => {
  console.error('广告加载失败', event);
};
</script>

2. 检查 unit-id 是否正确

unit-id 是广告的唯一标识符,必须从微信小程序后台获取。确保你使用的是有效的 unit-id


3. 检查微信开发者工具的基础库版本

ad-custom 组件需要较高版本的微信基础库支持。确保你的微信开发者工具和真机环境的基础库版本符合要求。

  • 打开微信开发者工具,点击右上角的 详情
  • 本地设置 中,勾选 使用最新的基础库

4. 检查 uni-app 的版本

确保你使用的 uni-app 版本支持 vue3 和微信小程序的 ad-custom 组件。可以通过以下命令检查版本:

npm list @dcloudio/uni-app

如果版本较旧,可以尝试升级:

npm install @dcloudio/uni-app@latest

5. 检查编译配置

vue3 项目中,确保 manifest.json 中的配置正确。以下是一个示例:

{
  "mp-weixin": {
    "appid": "your-appid",
    "setting": {
      "urlCheck": false,
      "es6": true,
      "postcss": true,
      "minified": true
    },
    "usingComponents": true
  }
}

6. 真机调试

在微信开发者工具中,某些功能可能无法完全模拟真机环境。建议在真机上测试 ad-custom 组件,确保其正常工作。


7. 查看控制台日志

如果广告组件无法正常加载,查看微信开发者工具的控制台日志,检查是否有错误信息。常见的错误包括:

  • unit-id 无效。
  • 网络请求失败。
  • 广告组件未正确初始化。

8. 检查广告组件的生命周期

确保广告组件的生命周期事件(如 @load@error)被正确触发。如果未触发,可能是组件未正确初始化或配置有问题。


9. 联系微信小程序官方支持

如果以上方法均无法解决问题,可能是微信小程序平台的问题。可以联系微信小程序官方支持,提供详细的错误信息和代码片段,寻求帮助。


示例代码

以下是一个完整的 ad-custom 组件示例:

<template>
  <view>
    <ad-custom
      unit-id="your-ad-unit-id"
      @load="onAdLoad"
      @error="onAdError"
    ></ad-custom>
  </view>
</template>

<script setup>
const onAdLoad = (event) => {
  console.log('广告加载成功', event);
};

const onAdError = (event) => {
  console.error('广告加载失败', event);
};
</script>
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!