微信小程序开发交流qq群 173683895
承接微信小程序开发。扫码加微信。
正文:
一. 开发插件
插件开发流程
以下为插件开发接入流程:
开通插件功能
小程序开发者无需重新注册帐号,可直接在小程序管理后台开通插件功能,完成基本信息填写后完成开通。
开通入口:小程序管理后台-小程序插件
填写插件基本信息,插件的基本信息将在插件申请流程、小程序基本信息页中展示。
填写开发信息并完成开发
设置插件的服务器域名及Token信息后,即可在开发者工具中开发插件。
开发者工具内设置请见:
创建插件项目
小程序的 AppID 可以创建小程序插件项目,插件是独立于小程序之外的,但是 AppID 是公用的,所以不要使用原有的小程序项目进行插件开发。 在创建项目页面,选择一个空文件夹作为项目路径,可以选择创建小程序插件快速启动模板
快速启动模板说明:
-
miniprogram
文件夹是一个普通小程序项目,用来编写小程序插件的使用 Demo,上传插件代码时这个 Demo 会一起上传,并作为小程序插件的发布的审核依据. -
plugin
文件就是小程序插件项目,用来编写小程序插件的代码。 -
project.config.json
需要关注compileType
字段,compileType == 'plugin'
时才能正常的使用插件项目。详情
打开已存在的插件项目
如果是之前创建的插件项目,可以在项目列表中直接打开;
如果重新创建项目,选择一个非空目录,那么这个非空目录中需要有 project.config.json
详情,确保这个文件中有以下字段:
{
"miniprogramRoot": "./miniprogram",
"pluginRoot": "./plugin",
"compileType": "plugin"
}
在项目开发期间,可以手动修改 project.config.json
文件的 compileType
字段来切换项目的编译类型。
插件上传
提交版本审核
插件发布前需要提交微信小程序团队审核,审核通过后才可发布。
提交审核时,插件开发者需要填写以下信息:插件服务类目、标签及功能描述。
插件服务类目:插件可从当前小程序已通过的服务类目中选择一个。已开放类目表格见插件开放范围及类目。
标签:请填写与插件提供的服务相关的标签
功能描述:为便于审核团队体验及审核插件功能,请开发者填写基本介绍及插件的使用说明。
版本发布
插件审核通过后,可在管理后台操作发布。插件发布后才可以被其他小程序搜索并添加。
插件支持多个线上版本同时存在。
使用申请管理
小程序使用插件需要经过插件开发者的同意。
开发者可在”小程序管理后台-小程序插件-申请管理“内处理插件的接入申请。插件开发者可在24小时内选择”通过“或”拒绝“申请方使用插件。
二 . 使用插件
小程序开发者可便捷地把插件添加到自己的小程序内,丰富小程序的服务。当用户在使用小程序时,将可以在小程序内使用插件提供的服务。
开放范围
所有小程序
接入流程
-
在小程序管理后台添加插件
小程序开发者可在”小程序管理后台-设置-第三方服务-插件管理“中,根据AppID查找需要的插件,并申请使用。插件开发者在24小时内通过后,小程序开发者可在小程序内使用该插件。
-
在小程序代码中使用插件
申请使用插件
在使用插件前,首先要在小程序管理后台的“设置-第三方服务-插件管理”中添加插件。开发者可登录小程序管理后台,通过 appId 查找插件并添加。插件开发者通过申请后,方可在小程序中使用相应的插件。
引入插件代码包
对于插件的使用者,使用插件前要在 app.json
中声明需要使用的插件,例如:
{
"plugins": {
"myPlugin": {
"version": "1.0.0",
"provider": "wxxxxxxxxxxxxxxxxx"
}
}
}
如上例所示, plugins
定义段中可以包含多个插件声明,每个插件声明中都必须指明插件的 appid 和需要使用的版本号。
使用插件的 js 接口
在引入插件代码包之后,就可以在这个小程序中使用插件提供的自定义组件或者 js 接口。
如果需要使用插件的 js 接口,可以使用 requirePlugin
方法:
var myPluginInterface = requirePlugin('myPlugin')
myPluginInterface.hello()
使用插件的自定义组件
使用插件提供的自定义组件,和使用普通自定义组件的方式相仿。在 json
文件定义需要引入的自定义组件时,使用 plugin://
协议即可,例如:
{
"usingComponents": {
"hello-component": "plugin://myPlugin/hello-component"
}
}
出于对插件的保护,插件提供的自定义组件在使用上有一定的限制:
- 页面中的
this.selectComponent
接口无法获得插件的自定义组件实例对象; wx.createSelectorQuery
等接口的>>>
选择器无法选入插件内部。