W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
一個(gè)門店插件的定義包含插件類型、UI 規(guī)范、協(xié)議規(guī)范三個(gè)屬性。
插件類型定義了插件的業(yè)務(wù)屬性,比如 秒殺插件、拼團(tuán)插件、預(yù)約插件等。每種類型的插件會(huì)由一或多個(gè)協(xié)議組成。門店主體小程序在喚起插件的時(shí)候會(huì)根據(jù)協(xié)議規(guī)范逐個(gè)調(diào)用協(xié)議 API。
指插件需要遵循的 UI 標(biāo)準(zhǔn),標(biāo)準(zhǔn)由門店平臺(tái)定義。
協(xié)議規(guī)范是指插件實(shí)現(xiàn)時(shí)需要遵照的規(guī)范。
協(xié)議實(shí)現(xiàn)依賴插件的接口導(dǎo)出能力,插件可以在接口文件(在 plugin.json 配置文件中指定,詳情請(qǐng)參見 插件配置文件)中導(dǎo)出 js 接口,供插件的使用者調(diào)用,例如:
export default {
events: {
onInit: funciont(storeCtx) {
// 插件初始化回調(diào)
// todo
}
},
methods: {
attrApi: function() {
// 獲取插件屬性api
// todo
}
}
}
對(duì)于門店小程序來(lái)說,平臺(tái)定義了唯一的協(xié)議調(diào)用 this.props.onEmit
。
this.props.onEmit(this, apiName, param)
因此插件實(shí)現(xiàn)者需要導(dǎo)出如下接口:
export default {
methods: {
apiName: function(storeCtx, param) {
console.log('invoke api success!')
}
}
}
平臺(tái)自動(dòng)注入門店上下文信息,包含如下屬性,插件開發(fā)者可以按需獲取。
{
"pid": "2088xxxxxxxx",
"storeId": "1000",
"storeName": "同樂坊Z空間店"
}
主體小程序 APPID,插件開發(fā)者可以通過 my.getParentAppIdSync() 進(jìn)行獲取。
調(diào)用參數(shù),協(xié)議調(diào)用需要其他參數(shù)(業(yè)務(wù)參數(shù))放在這個(gè)對(duì)象里面,由主體小程序調(diào)用時(shí)傳入。
this.props.onEmit(this, "selectItems", { "size": 3 })
export default {
events: {
onInit: function(storeCtx) {
// 插件初始化回調(diào)
// todo
}
},
methods: {
// 組裝用戶選擇的商品
selectItems: function(storeCtx, param) {
const { pid } = storeCtx;
const { size } = param;
console.log('select items success!')
return new Promise(resolve => {
asyncAction((result) => {
resolve(result);
});
});
},
// 刪除商品
deleteItem: function(storeCtx, param) {
console.log('delete item success!')
}
}
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: