容器参数传递
插件容器(即主体小程序)在运行时动态传递参数给插件。但是容器如何知道需要传递什么参数呢?机制是这样的:插件开发者如果在运行时需要用到某些参数,需要在plugin.json声明,插件容器所有者(对于门店来说,是拥有门店的商家)在订购的时候需要明确授权传递这些参数给插件,启用后在运行时容器会通过参数传递给插件。
通用参数
参数KEY | 类型 | 描述 | 示例值 |
plugin.common.mode (注: 提供不同模式入口的容器默认给插件传递这个参数,而不管插件是否声明) | string | 插件的模式,目前支持两个值: default - 默认模式, admin - 管理模式。如果留空则为default模式。一个典型的场景是:为门店小程序提供的某些插件分为两种模式,一种为默认模式,启用后门店用户直接可以使用;另外一种为管理模式,门店管理员可以在专门的管理界面或管理小程序中使用进行一些配置和管理的工作。 | default |
plugin.common.customParams | string | 插件在自定义分享的时候,用户点击返回时,会带回自定义参数。这个KEY对应的值为自定义参数值。里面的内容容器不做解析,直接透传给插件。 |
容器传递模式参数后,插件根据当前所处的不同模式在插件内部切换页面:
//app.js
App({
onLaunch(options) {
this.pluginData = options.referrerInfo.data || {};
if (this.pluginData['plugin.common.mode'] === 'admin') {
my.redirectTo({
url: '/pages/pageToB/index',
});
} else {
my.redirectTo({
url: '/pages/pageToC/index',
});
}
},
pluginData: {},
});
主体程序为门店的参数
开放的参数
参数KEY | 类型 | 描述 | 示例值 |
---|---|---|---|
alipay.store.info.allowPay | boolean | 是否允许支付,签约开通后为true | false |
alipay.store.info.appid | string | 门店的appid,有时候和容器的app和门店的appid不一致,例如从门店助手唤起插件进入管理模式的时候。注: 在插件中,如果这个参数获取到的值为空,需要进一步获取referrerInfo里面的appId(详见: API) | |
alipay.store.info.name | string | 门店名称 | 门店插件调试容器 |
alipay.store.info.category | string | 门店分类(第三级) | |
alipay.store.info.phone | string | 门店联系电话 | 95188 |
alipay.store.info.desc | string | 门店描述 | |
alipay.store.info.descBrief | string | 门店简短描述 |