uni-app 微信插件需严格按原生流程配置:manifest.json 中 provider 必须为插件方 appid 且置于 "mp-weixin" 节点下,plugins 为对象;pages.json usingcomponents 路径须带 plugin:// 前缀;广告插件路径须含正确 adpid 后缀;真机调试前须在微信开发者工具启用插件调试。

uni-app 调用微信官方插件(如 WechatSI、polyv-player、uni-ad)不是“装个 npm 包就能用”,必须走微信小程序原生插件接入流程,且每一步配置错一个字段(比如 provider 写成自己小程序的 AppID)都会导致组件白屏或报 plugin not found 错误。
manifest.json 里填错 provider 就全盘失效
微信插件的 provider 是插件开发者的小程序 AppID,不是你自己的。这个值必须从微信服务市场或插件详情页复制,不能手写、不能猜测、不能和 mp-weixin.appid 混用。常见错误是把插件的 provider 和你自己小程序的 appid 弄反,或者漏掉 "mp-weixin" 外层包裹:
-
manifest.json中插件配置必须放在"mp-weixin"节点下,不是根节点 - 多个插件共存时,
"plugins"是对象,不是数组;每个插件 key 名需与页面中usingComponents的 key 一致 - 版本号要严格匹配插件市场显示的当前可用版本,比如
"version": "1.9.0"写成"1.9"或"1.9.0.1"都会加载失败
pages.json 的 usingComponents 必须带 plugin:// 协议
微信原生插件路径不是本地相对路径,也不是 npm 包路径,而是固定格式的 plugin://<plugin-name>/<component-path></component-path></plugin-name>。漏掉 plugin:// 前缀是高频错误,会导致组件不渲染、控制台无报错但页面空白:
公众号运营:文章发布至草稿、样式封面、评论与用户管理、数据统计等。用户要求将 Markdown 发送到公众号草稿、查看阅读量统计或类似后台操作时,使用本技能。
- 例如
polyv-player的正确写法是"polyv-player": "plugin://polyv-player/player" -
WechatSI不提供自定义组件,所以不需要配usingComponents,而是用requirePlugin('WechatSI')在 JS 中调用 - 路径中的
/player是插件包内plugin.json定义的 component 入口,不能随意改成/index或/main
插件页面路径带广告位 ID 是硬性要求
像 uni-ad 这类广告插件,微信平台强制要求使用广告位 ID 作为页面路径后缀。这不是可选优化,而是上线审核卡点。路径格式必须为 pages/xxx/xxx_<adpid></adpid>,且 adpid 必须与后台申请的完全一致:
- 路径中
_<adpid></adpid>部分不能加空格、不能用短横线代替下划线、不能漏掉下划线 - 同一个页面若需多个广告位,只在一个路径上加即可,但
<adpid></adpid>必须是其中一个有效 ID - HBuilderX 编译时不会校验该路径是否真实存在,但真机调试或提审时,微信基础库会直接拒绝加载
真机调试前必须在微信开发者工具开启插件调试
即使所有配置都正确,HBuilderX 编译出的微信小程序代码,在微信开发者工具里默认也不会加载插件——需要手动开启。这个开关藏得深,很多人卡在这一步以为代码有问题:
- 打开微信开发者工具 → 右上角「详情」→「本地设置」→ 勾选「启用插件调试」
- 如果插件涉及隐私接口(如录音、地理位置),还需在「项目设置」里手动勾选对应权限开关
- 模拟器无法触发插件真实能力(比如
WechatSI录音、polyv-player播放 DRM 视频),必须真机扫码测试
最易被忽略的是:插件的 provider 和页面路径后缀这种“非代码逻辑”配置,它们不出现在 JS 或 Vue 文件里,却决定整个插件能否启动。改完 manifest 或 pages.json 后,务必重启 HBuilderX 并重新编译,缓存会导致旧配置残留。










