W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
開發(fā)者可通過 支付寶服務(wù)市場 與 支付寶能力中心 來獲取和使用插件。詳情請參見 插件訂購。
三方開發(fā)者如需開發(fā)插件,請進(jìn)行申請。
注意:
插件可以包含若干個(gè) 自定義組件、頁面 和一組 js 接口。插件 plugin 文件夾中的示例目錄內(nèi)容如下:
plugin
|-----components // 插件提供的自定義組件(可以有多個(gè))
|----------hello-component
| |----hello-component.acss
| |----hello-component.axml
| |----hello-component.js
| |----hello-component.json
|-----pages // 插件提供的頁面(可以有多個(gè))
|----------hello-page
| |----hello-page.acss
| |----hello-page.axml
| |----hello-page.js
| |----hello-page.json
|----------index
| |----index.acss
| |----index.axml
| |----index.js
| |----index.json
|-----index.js // 插件的 js 接口
|-----plugin.json // 插件配置文件
向第三方小程序開放的所有組件、頁面和 js 接口都必須在 plugin.json 中聲明,格式如下:
{
"publicComponents": {
"hello-component": "components/hello-component"
},
"publicPages": {
"hello-pages": "pages/hello-page"
},
"pages": [
"pages/hello-page"
"pages/index"
],
"main": "index.js"
}
每個(gè)配置的含義如下:
說明:pages 文件夾不可刪除,文件夾中的代碼可以當(dāng)作普通小程序來編寫。
插件可以直接使用基礎(chǔ)組件或擴(kuò)展組件,也可自定義組件,這些組件在插件內(nèi)可以互相引用,但提供給第三方小程序使用的自定義組件必須在 plugin.json 配置文件中的 publicComponents 中聲明。
插件自定義組件與普通自定義組件一致,每個(gè)自定義組件由 axml、acss、js 以及 json 四個(gè)文件組成,詳情請參見 自定義組件文檔。
插件可以自定義若干個(gè)頁面,支持從本插件的自定義組件、其他頁面或者第三方小程序中進(jìn)行跳轉(zhuǎn)。其中,提供給第三方小程序跳轉(zhuǎn)的頁面必須在在 plugin.json 配置文件中的 publicPages 和 Pages 中聲明。
插件頁面與普通小程序的頁面一致,每個(gè)頁面由axml、acss、js 以及 json 四個(gè)文件組成,詳情請參見 頁面文檔。
插件執(zhí)行頁面跳轉(zhuǎn)的時(shí)候,可以使用基礎(chǔ)組件 navigator 頁面鏈接 或者 API my.navigateTo。
注意:
插件可以在接口文件(在 plugin.json 配置文件中指定,詳情見上文 插件配置文件)中導(dǎo)出一些 js 接口,供插件的使用者調(diào)用。
示例代碼
export default {
helloApi: function() {
console.log('helloApi!')
}
}
//.axml
<view a:for="{{list}}">
<view>{{item.name}}:{{item.price}}</view>
</view>
//.js
Component({
data: {
list:[]
},
onInit() {
this.setData({
list: [{
name: '牛肉米粉',
price: 12
}, {
name: '雜醬面',
price: 10
}, {
name: '周黑鴨',
price: 30
},{
name: '肉夾饃',
price: 8
}]
});
}
})
.json
{
"component": true
}
點(diǎn)擊 IDE 中右上角 真機(jī)調(diào)試 或 預(yù)覽 按鈕查看效果。
完成開發(fā)后點(diǎn)擊界面右上角 上傳。完成插件上傳后,可進(jìn)入 支付寶開放平臺 對插件進(jìn)行管理,如 插件提審。
插件不支持直接使用其他插件。如果小程序引用了多個(gè)插件,插件之間可以互相調(diào)用但不可以互相跳轉(zhuǎn)。
例如,第三方小程序中的 app.json :
{
"plugins": {
"pluginOne": {
"version": "1.0.0",
"provider": "2019081209098989"
},
"pluginTwo": {
"version": "1.0.0",
"provider": "2019081209091212"
}
}
}
上面的示例中,第三方小程序通過 app.json 引用了兩個(gè)插件,那么插件 pluginOne 可以通過以下三種方式訪問 pluginTwo 的組件、頁面以及 js 接口:
getCurrentPages 用于返回當(dāng)前頁面棧,返回過程中存在如下限制:
例如當(dāng)前的頁面棧從棧底到棧頂依次為:小程序頁面 A、小程序頁面 B、插件頁面 C、插件頁面 D。
// PageA/PageB 為小程序頁面實(shí)例
[PageA, PageB, null, null]
// PageC/PageD 為插件頁面實(shí)例
[null, null, PageC, PageD]
出于安全性考慮,插件不支持隨意跳轉(zhuǎn)至小程序的頁面。如有相關(guān)需求,可以將跳轉(zhuǎn)方式包裝成方法,通過插件暴露的 API,傳遞給插件,插件內(nèi)部可以通過這些方法實(shí)現(xiàn)跳轉(zhuǎn)。詳情請下載 插件跳轉(zhuǎn)小程序頁面示例 壓縮包。
插件端 (開發(fā)插件) 約定的 miniprogram 目錄的 app.json 如下所示
"plugins": {
"myPlugin": {
"version": "dev", // 固定dev
"provider": "{{currentPluginId}}" // 建議使用"{{currentPluginId}}",
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: