微信小程序插件从发布到使用的完整实战指南
微信小程序的**插件(plugin)**是一种模块化复用机制。开发者可以将一个功能封装成插件,供其他小程序调用。例如常见的有「视频播放器插件」「地图定位插件」「支付工具插件」等。
📌 特点:
插件的运行机制是「宿主小程序 → 调用插件接口/组件」。
宿主在 app.json 中声明依赖,微信框架会在编译阶段将插件资源合并加载。
调用链如下:
宿主小程序 page.wxml → 插件组件 → 插件逻辑层(plugin/index.js) → 微信宿主环境
因此,插件和宿主的小程序在逻辑上隔离,但在运行时通过接口通信。
在开发者工具中新建项目,选择:
项目类型:插件
配置文件 project.config.json:
{
"appid": "wx05dfcd468442088e",
"compileType": "plugin",
"pluginRoot": "plugin"
}
项目结构示例:
plugin/
├─ components/
│ └─ video-player/
│ ├─ video-player.wxml
│ ├─ video-player.wxss
│ ├─ video-player.js
│ └─ video-player.json
├─ index.js
└─ plugin.json
plugin.json
{
"publicComponents": {
"video-player": "components/video-player/video-player"
},
"publicMethods": {
"play": "index.play"
}
}
index.js
function play() {
console.log("播放视频中……");
}
module.exports = {
play
};
1.0.0)与描述下面重点讲解——如何在其他小程序使用你发布的插件。
在宿主小程序的后台(公众平台 → 开发 → 插件管理)中添加插件 AppID。
例如你要使用的插件:
插件AppID:wx05dfcd468442088e
插件版本:1.0.0
{
"plugins": {
"videoProxy": {
"version": "1.0.0",
"provider": "wx05dfcd468442088e"
}
}
}
解释:
videoProxy 是插件引用名称;provider 是插件的 AppID;version 是要使用的插件版本号。index.json
{
"usingComponents": {
"plugin-video-player": "plugin://videoProxy/video-player"
}
}
index.wxml
<view class="container">
<plugin-video-player src="https://example.com/video.mp4"></plugin-video-player>
</view>
// 引用插件
const videoProxy = requirePlugin('videoProxy')
Page({
onReady() {
// 调用插件暴露的方法
videoProxy.play()
}
})
解释:
requirePlugin('videoProxy') 获取插件对象;publicMethods 调用其方法。插件如果暴露了页面(如 publicPages),可以通过 plugin:// 打开:
wx.navigateTo({
url: 'plugin://videoProxy/video-page'
})
| 问题 | 原因 | 解决方案 |
|---|---|---|
Component is not found in path | 路径错误或插件未正确注册 | 检查 plugin.json 与 usingComponents |
| 插件无法调用方法 | 宿主小程序未 requirePlugin | 确保已在 JS 文件正确调用 |
| 模拟器启动失败 | 缺少 provider 或 version | app.json 插件配置必须完整 |
| 审核不通过 | 使用了禁止 API 或未备案资源 | 按审核意见修改后重新提交 |
微信小程序插件的使用流程可概括为:
app.json 声明插件;这样,你就可以在多个小程序中共用同一功能模块,大大提升开发效率与一致性。
本文部分内容借助 AI 辅助生成,并由作者整理审核。
转自https://juejin.cn/post/7569055467802361898