关于微信小程序的开发教程,杂而多,今天春哥团队技术大东总结下关于微信小程序插件的开发相关教程,希望可以帮到大家。
插件和使用自小程序基础库版本 1.9.6 开始支持。(如果插件包含页面,则需要基础库版本 2.1.0)
- 插件是对一组 js 接口、自定义组件或页面的封装,用于嵌入到小程序中使用
- 插件不能独立运行,必须嵌入在其他小程序中才能被用户使用
- 第三方小程序在使用插件时,也无法看到插件的代码。因此,插件适合用来封装自己的功能或服务,提供给第三方小程序进行展示和使用。
- 会受到一些限制,如一些 API 无法调用或功能受限。还有个别特殊的接口,虽然插件不能直接调用,但可以使用 插件功能页 来间接实现。
- 框架会对小程序和小程序使用的每个插件进行数据安全保护,保证它们之间不能窃取其他任何一方的数据(除非数据被主动传递给另一方)。、

开放范围及服务类目及开发接入流程
简单了解
开发
接入插件调用 API 的限制
- 插件的请求域名列表与小程序相互独立;
- 一些 API 不允许插件调用(这些函数不存在于 wx 对象下)。
- 有些接口虽然在插件中不能使用,但可以通过插件功能页来达到目的,请参考插件功能页。
插件使用组件的限制
-
开放能力(open-type)为以下之一的 button: contact(打开客服会话) getPhoneNumber(获取用户手机号) getUserInfo(获取用户信息)
-
open-data
-
web-view 以下组件的使用对基础库版本有要求:
-
navigator 需要基础库版本 2.1.0
-
live-player 和 live-pusher 需要基础库版本 2.3.0
插件功能页
插件功能页从小程序基础库版本 2.1.0 开始支持。
某些接口不能在插件中直接调用(如 wx.login),但插件开发者可以使用插件功能页的方式来实现功能。目前,插件功能页包括:
- 获取用户信息,包括 openid 和昵称等(相当于 wx.login 和 wx.getUserInfo 的功能),详见用户信息功能页;
- 支付(相当于 wx.requestPayment),详见支付功能页;
- 获取收货地址(相当于 wx.chooseAddress),详见收货地址功能页。
要使用插件功能页,需要先激活功能页特性,配置对应的功能页函数,再使用 functional-page-navigator 组件跳转到插件功能页,从而实现对应的功能。
跳转到功能页
功能页不能使用 wx.navigateTo 来进行跳转,而是需要一个名为 functional-page-navigator 的组件。以获取用户信息为例,可以在插件中放置如下的 functional-page-navigator:
<functional-page-navigator name="loginAndGetUserInfo" args="" version="develop" bind:success="loginSuccess">
<button>登录到插件</button>
</functional-page-navigator>
复制代码
用户在点击这个 navigator 时,会自动跳转到插件所有者小程序的对应功能页。功能页会提示用户进行登录或其他相应的操作。操作结果会以组件事件的方式返回。
从小程序基础库版本 2.4.0 开始,支持插件所有者小程序跳转到自己的功能页。在基础库版本低于 2.4.0 时,点击跳转到自己的功能页的 functional-page-navigator 将没有任何反应。
用户信息功能页
用户信息功能页用于帮助插件获取用户信息,包括 openid 和昵称等,相当于 wx.login 和 wx.getUserInfo 的功能。
此外,自基础库版本 2.3.1 起,用户在这个功能页中授权之后,插件就可以直接调用 wx.login 和 wx.getUserInfo 。无需再次进入功能页获取用户信息。自基础库版本 2.6.3 起,可以使用 wx.getSetting 来查询用户是否授权过。
支付功能页
支付功能页用于帮助插件完成支付,相当于 wx.requestPayment 的功能。
需要注意的是:插件使用支付功能,需要进行额外的权限申请,申请位置位于管理后台的“小程序插件 -> 基本设置 -> 支付能力”设置项中。另外,无论是否通过申请,主体为个人小程序在使用插件时,都无法正常使用插件里的支付功能。
收货地址功能页
收货地址功能页用于展示用户的收货地址列表,用户可以选择其中的收货地址。自基础库版本 2.4.0 开始支持。
暂时就给大家整理到这里,有其他问题欢迎到春哥技术源码论坛留言讨论。