安装、签名与上架
本页你将学到
- 三种安装方式各自适合的场景;
- 单文件 HTML 与 zip 包的结构差异;
- 版本管理与发布前检查清单;
- 上架插件市场的流程。
三种安装方式
| 方式 | 适用场景 | 操作 |
|---|---|---|
| 粘贴 HTML | 开发调试 | 插件页「+」→ 粘贴 |
| 远程 URL | 内部分发、快速迭代 | 插件页「+」→ 填 URL |
| 本地文件 / zip | 正式分发 | 插件页「+」→ 选择文件 |
插件不需要签名。这既是便利,也是风险 —— 只安装可信来源的插件。
单文件 vs zip
单文件 HTML
适合逻辑简单、不需要图标的插件。所有代码、样式、README 都塞进一个文件:
html
<script type="text/markdown">
# 我的插件
这是一段会显示在详情页的说明。
</script>zip 包
适合需要图标、多文件资源的插件:
text
my-plugin.zip
├── plugin.html # 入口,必需
├── logo.png # 可选,128×128 建议
├── style.css # 可选,插件资产
├── helper.js # 可选,assets.script() 加载
├── demo.wasm # 可选,WASM(面板 / 逻辑层 / 渲染层都能加载)
└── README.md # 可选,详情页说明wad:logo 可以写 logo.png(zip 内文件名),也可以是 data: URL 或 http(s) 地址。zip 资源通过 /v1/plugins/<id>/file/<相对路径> 提供,各层用 assets.url() 获取(渲染层还有 asset() 快捷方式)。
外部脚本
<script src="https://..."> 不会被执行。需要请求数据请用 http.*,需要拆分代码请内联或用 assets.script()。
版本管理
| 字段 | 用途 |
|---|---|
wad:version | 展示用版本名,例如 1.2.3 |
wad:versionCode | 整数,市场判断是否需要更新 |
同包名安装会覆盖旧版本。升级时宿主会重新注入,attach 会再次触发(attach = 每次注入),注意清理上一代留下的 DOM 与定时器。
上架到插件市场
市场由后台管理端维护,流程大致是:
- 管理员在后台上传插件 zip 或 HTML;
- 填写包名、名称、分类、版本、更新说明;
- 平台做语法预检与基础审核;
- 客户端在「插件市场」看到条目,一键安装。
市场条目只存元数据与包体,安装后仍然是本地插件,不依赖远程运行。
导出与分享规则
插件详情页提供「分享」按钮(生成 wad-plugin-<package>.zip,包含 plugin.html、拆分后的 logic.js / render.js、files/ 资产、readme.md 与 manifest.json)。规则如下:
| 来源 | 是否可导出 | 说明 |
|---|---|---|
系统预置(preset) | ✅ 可以 | 内置三个预置插件随 App 安装,可卸载;卸载后可再从市场装回 |
| 用户自行安装(粘贴 / 本地 / URL) | ✅ 可以 | 非加密包默认允许分享 |
| 市场明文包 | 由后台「允许导出」开关决定 | 后台开启后客户端显示「分享」 |
市场加密包(enc=1) | ❌ 不可以 | 设备上只有 pkg.enc 密文,没有明文源码可导出 |
导出包可以直接通过「+ → 选择文件 / zip」重新安装到另一台设备;加密包不会出现在导出包里。
系统预置插件
首次启动时 App 会自动安装以下三个预置插件(version 均为 1.0.0):
| 包名 | 名称 | 能力 |
|---|---|---|
text-editor | 界面元素修改 | 点击页面文字直接编辑,可禁止原点击事件;跨页面保持,关闭还原 |
location-editor | 定位调试 | 接管 wx.getLocation / wx.getFuzzyLocation,可读取真实坐标并与接管值对照 |
storage-inspector | 缓存管理 | 查看/新增/删除小程序 Storage,监听 storageWrite |
预置插件默认启用,但受顶部「插件功能」总开关约束;用户卸载后不会在下次启动时自动装回,需要在插件市场重新安装。
发布前检查清单
- [ ]
wad:package唯一且符合命名规则 - [ ]
wad:versionCode比上一版大 - [ ] 所有内联脚本能通过语法预检
- [ ]
onDetach里清理了 DOM、定时器、事件监听 - [ ] 没有依赖外部
<script src> - [ ] 单文件 ≤ 2 MB,逻辑层 / 渲染层脚本各 ≤ 256 KB
- [ ] zip 总量 ≤ 8 MB,单资产 ≤ 4 MB
- [ ] WASM 用
assets.wasm()(三层都能加载),路径走/file/ - [ ] 面板在 280~360 宽度下布局正常
- [ ] 没有把 token、设备信息写进日志
- [ ] 在至少两个小程序上验证过 attach / detach
安全与合规
- 插件可以读写当前小程序的业务数据、修改页面 DOM,请明确告知用户;
- 不要采集、上传用户的敏感数据;
- 不要做与插件描述无关的行为;
- 涉及第三方服务时,遵守对方条款。