关于微信小程序部分插件的开发教程

关于微信小程序的开发教程,杂而多,今天春哥团队技术大东总结下关于微信小程序插件的开发相关教程,希望可以帮到大家。
插件和使用自小程序基础库版本 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 开始支持。

暂时就给大家整理到这里,有其他问题欢迎到春哥技术源码论坛留言讨论。


 

来源:春哥技术博客,欢迎分享,(春哥微信号:cgnanyin)
上一篇:如何在微信小程序中推送模板消息?详细      下一篇:微信小程序Request的另类用法分享