耿健的个人博客

一个即将放飞理想的咸鱼博主

0%

33.微信小程序插件开发记录

记录背景

其实微信小程序插件,一直想要学习研究。
可是插件又不会对小程序个人开发者开放,没办法用自己的小程序来研究。

在上家公司的时候,没有参与到插件开发的小组内,甚是遗憾。
正好这次有个项目机会用到了小程序插件,
赶紧把握机会玩耍了一波。

感觉这个插件功能,在对多个小程序都可以复用的场景,还是很有帮助的。

使用规则

通过开发插件的体验,我自己总结了一下插件的开发规则:

  1. 插件需要挂载一个符合指定类目的小程序下开发。(个人小程序不允许开发插件)
  2. 插件的版本号只能递增且不能重复。已发布的版本会永远在线上列表内。可以通过设置来控制用户使用插件的最低版本。(说明文档只会展示最新版本)
  3. 插件的体验版版本号,只在模拟器上传之后会出现,注意复制保存。(小程序引用体验版的时候,版本号前面需要追加dev-
  4. 插件和小程序内存相互独立,想要通讯只能通过传参,互相无法直接读取到对方的缓存等信息。
  5. 插件像是一个更高纬度的组件,其支持开发页面、组件、方法。业务小程序可通过引用插件来对插件的页面、组件、方法进行调用。
  6. 插件的大小会被业务小程序主包、子包计算在内,也会受到 2M 的限制,所以组件如果太大会影响业务小程序的调用。(貌似只有直播插件不会计算在内)
  7. 插件被业务小程序调用的时候,要么放在全局(占用主包大小),如果放到指定子包(占用指定子包大小)则只有这个子包可以使用,其他子包无法引用该插件也无法运用该插件。
  8. 插件的一些小程序 api 会无法使用如登录、鉴权等,具体详情可见下方文档。
  9. 插件的安全域名与业务小程序的安全域名是相互独立的。即:插件功能需要接口通讯时,需要在插件后台配置域名列表配置对应域名;而调用插件的业务小程序则无需配置插件功能所需的域名,直接引用插件功能即可实现接口通讯。

插件项目结构介绍

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
.
├── README.md // 项目README
├── doc
│   └── README.md // 插件使用文档,用于上传到插件介绍
├── miniprogram // 开发时测试用小程序
│   ├── app.js
│   ├── app.json
│   ├── pages
│   │   └── index
├── plugin // 插件代码
│   ├── components // 插件暴露出来的组件目录
│   │   └── comTest
│   │   ├── comTest.js
│   │   ├── comTest.json
│   │   ├── comTest.wxml
│   │   └── comTest.wxss
│   ├── functions // 插件暴露出来的方法目录
│   │   └── funTest.js
│   ├── index.js
│   ├── pages
│   │   └── pageTest // 插件暴露出来的页面目录
│   │   ├── pageTest.js
│   │   ├── pageTest.json
│   │   ├── pageTest.wxml
│   │   └── pageTest.wxss
│   ├── plugin.json // 配置插件暴露出来的页面、组件、方法目录
│   └── utils // 插件内部使用的公共方法
└── project.config.json

相关资料