微信小程序插件开发

发布于2019年7月31日 15:53:37 ,最后一次修改于2023年6月22日 15:17:55

微信小程序插件的发布方便了代码公用和数据交互,可以保证业务功能公用的同时保证代码的安全性。

微信插件的定义如下:插件是对一组 js 接口、自定义组件或页面的封装,用于嵌入到小程序中使用。插件不能独立运行,必须嵌入在其他小程序中才能被用户使用;而第三方小程序在使用插件时,也无法看到插件的代码。因此,插件适合用来封装自己的功能或服务,提供给第三方小程序进行展示和使用

所以我们开发插件时还需考虑它的特性和使用场景,插件的审核比小程序严格多了,一般审核周期也较长。

下面总结下插件相关的内容:
开发:官方文档https://developers.weixin.qq.com/miniprogram/dev/framework/plugin/development.html,文档里已经介绍的很详细了,这里不再细讲了;

传参:小程序向插件内组件传参,跟小程序组件传参基本一致;小程序向插件内页面传参:可以通过URL带参和向外暴露变量传参。
从url传参:

<navigator url=plugin-private://{appid}/pages/list/index?options={params}></navigator>

在插件内页面通过query获取相应的值, 一般参数比较少可以通过url传参解决,如果相关配置较多,则可通过以下方式实现。

通过变量配置传参:

在插件index.js文件暴露变量名:

let config = {}
module.exports = { config }

在第小程序使用该插件页面js文件:

// 引入插件

const plugin = requirePlugin("plug");
Page({
    onLoad(){
        // 配置插件所需要的参数
        plugin.config = {
            name: '',title: '',
            id: '',
            url: '',
            img: '',
            ....
        }
    }
})

那么在插件内监听数据:
在插件内的相关页面js文件种:

// 引入插件index.js 文件
const plugin = require('../../index')
Page({
    onLoad () {
        let config = plugin.config // 获取小程序传过来的参数
    }
})

插件的安全性:

  1. 一般可以通过使用插件的小程序appid和插件的签名验证
  2. 在后台配置使用者的appid及插件的token
  3. 验证:如果从请求head中的refer字段中appid与后台appid库的不匹配,则直接拒绝其继续访问插件。如果匹配,则继续验证其签名准确性

发表评论