miniprogram目录内容可以当成普通小程序来编写,用于插件调试、预览和审核。下面的内容主要介绍plugin中的插件代码及doc中的插件开发文档。
一个插件可以包含若干个自定义组件、页面,和一组js接口。插件的目录内容如下:
plugin├──components│├──hello-component.js//插件提供的自定义组件(可以有多个)│├──hello-component.json│├──hello-component.wxml│└──hello-component.wxss├──pages│├──hello-page.js//插件提供的页面(可以有多个,自小程序基础库版本2.1.0开始支持)│├──hello-page.json│├──hello-page.wxml│└──hello-page.wxss├──index.js//插件的js接口└──plugin.json//插件配置文件插件配置文件向使用者小程序开放的所有自定义组件、页面和js接口都必须在插件配置文件plugin.json列出,格式如下:
代码示例:
{"publicComponents":{"hello-component":"components/hello-component"},"pages":{"hello-page":"pages/hello-page"},"main":"index.js"}这个配置文件将向使用者小程序开放一个自定义组件hello-component,一个页面hello-page和index.js下导出的所有js接口。
请注意:在插件开发中,只有部分接口可以直接调用;另外还有部分能力(如获取用户信息和发起支付等)可以通过插件功能页的方式使用。
插件可以定义若干个自定义组件,这些自定义组件都可以在插件内相互引用。但提供给使用者小程序使用的自定义组件必须在配置文件的publicComponents段中列出(参考上文)。
除去接口限制以外,自定义组件的编写和组织方式与一般的自定义组件相同,每个自定义组件由wxml,wxss,js和json四个文件组成。具体可以参考自定义组件的文档。
插件从小程序基础库版本2.1.0开始支持页面。插件可以定义若干个插件页面,可以从本插件的自定义组件、其他页面中跳转,或从使用者小程序中跳转。所有页面必须在配置文件的pages段中列出(参考上文)。
除去接口限制以外,插件的页面编写和组织方式与一般的页面相同,每个页面由wxml,wxss,js和json四个文件组成。具体可以参考其他关于页面的文档。
插件执行页面跳转的时候,可以使用navigator组件。当插件跳转到自身页面时,url应设置为这样的形式:plugin-private://PLUGIN_APPID/PATH/TO/PAGE。需要跳转到其他插件时,也可以这样设置url。
插件可以在接口文件(在配置文件中指定,详情见上文)中export一些js接口,供插件的使用者调用,如:
module.exports={hello:function(){console.log('Helloplugin!')}}获取小程序导出从基础库2.11.1起,在插件中有全局函数requireMiniProgram,可以获取由使用者小程序导出的内容。
例如,使用者小程序做了如下导出:
//使用者小程序module.exports={greeting(){return'GreetingsfromWechatMiniProgram!';}}那么在插件中,可以这样获得内容:
//插件constminiProgramExports=requireMiniProgram();miniProgramExports.greeting();//'GreetingsfromWechatMiniProgram!'预览、上传和发布插件可以像小程序一样预览和上传,但插件没有体验版。
插件会同时有多个线上版本,由使用插件的小程序决定具体使用的版本号。
手机预览和提审插件时,会使用一个特殊的小程序来套用项目中miniprogram文件夹下的小程序,从而预览插件。
通常情况下,可以将miniprogram下的代码当做使用插件的小程序代码,来进行插件的调试和测试。
但有时,需要将插件的代码放在实际运行的小程序中进行调试、测试。此时,可以使用开发版的小程序直接引用开发版插件。方法如下:
如果开发版小程序引用了开发版插件,此时这个小程序就不能上传发布了。必须要将插件版本设为正式版本之后,小程序才可以正常上传、发布。
在使用者小程序使用插件时,插件代码并不可见。因此,除了插件代码,我们还支持插件开发者上传一份插件开发文档。这份开发文档将展示在插件详情页,供其他开发者在浏览插件和使用插件时进行阅读和参考。插件开发者应在插件开发文档中对插件提供的自定义组件、页面、接口等进行必要的描述和解释,方便使用者小程序正确使用插件。
插件开发文档必须放置在插件项目根目录中的doc目录下,目录结构如下:
doc├──README.md//插件文档,应为markdown格式└──picture.jpg//其他资源文件,仅支持图片其中,README.md的编写有一定的限制条件,具体来说:
插件不能直接引用其他插件。但如果小程序引用了多个插件,插件之间是可以互相调用的。
一个插件调用另一个插件的方法,与插件调用自身的方法类似。可以使用plugin-private://APPID访问插件的自定义组件、页面(暂不能使用plugin://)。
对于js接口,可使用requirePlugin,但目前尚不能在文件一开头就使用requirePlugin,因为被依赖的插件可能还没有初始化,请考虑在更晚的时机调用requirePlugin,如接口被实际调用时、组件attached时。(未来会修复这个问题。)
SIGNATURE=sha1([APPID,NONCESTR,TIMESTAMP,TOKEN].sort().join(''))其中,APPID是所在小程序的AppId(可以从请求头的referrer中获得);TOKEN是插件Token,可以在小程序插件基本设置中找到。
插件开发者可以在服务器上按以下步骤校验签名:
自基础库版本2.0.7开始,在小程序运行期间,若网络状况正常,NONCESTR和TIMESTAMP会每10分钟变更一次。如有必要,可以通过判断TIMESTAMP来确定当前签名是否依旧有效。
GMT+8,2024-12-1503:58,Processedin0.093170second(s),18queries.