W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
動態(tài)庫,是指可被添加到小程序內(nèi)直接使用的功能組件。開發(fā)者可直接在小程序內(nèi)使用動態(tài)庫,無需重復(fù)開發(fā),為用戶提供更豐富的服務(wù)。具體動態(tài)庫使用方法參見動態(tài)庫。
動態(tài)庫采用靜默更新的方式,即小程序中引用了動態(tài)庫,動態(tài)庫更新之后,用戶小程序里使用了該動態(tài)庫的功能將在小程序調(diào)起后進(jìn)行更新,更新操作對用戶小程序開發(fā)者無感知。
使用動態(tài)庫前,開發(fā)者要在 app.json 中聲明需要使用的動態(tài)庫,例如:代碼示例
{
"dynamicLib": {
// 定義一個別名,小程序中用這個別名引用動態(tài)庫。
"myDynamicLib": {
// 這是動態(tài)庫的 `dynamicLibName`,是全局唯一的名字,標(biāo)志著被引用的動態(tài)庫
"provider": "TheUniqueNameOwnedByThisDynamicLib"
}
}
}
如上例所示, dynamicLib 定義段中可以包含多個動態(tài)庫聲明,每個動態(tài)庫聲明以一個開發(fā)者自定義的動態(tài)庫引用名作為標(biāo)識,并指明動態(tài)庫的唯一標(biāo)識,及動態(tài)庫名稱。其中,引用名(如上例中的 myDynamicLib)由開發(fā)者自定義,無需和動態(tài)庫名稱保持一致。在后續(xù)的動態(tài)庫使用中,該引用名將被用于表示該動態(tài)庫。
使用動態(tài)庫時,動態(tài)庫的代碼對于開發(fā)者來說是不可見的。為了正確使用動態(tài)庫,開發(fā)者應(yīng)查看動態(tài)庫的詳細(xì)信息,閱讀提供的動態(tài)庫開發(fā)文檔,通過文檔來明確動態(tài)庫提供的自定義組件、js 接口規(guī)范等。
使用動態(tài)庫提供的自定義組件,和使用普通自定義組件的方式相仿。在 json 文件定義需要引入的自定義組件時,使用 dynamicLib:// 協(xié)議指明動態(tài)庫的引用名和自定義組件名,例如:
代碼示例
{
"usingComponents": {
// 這里的 'myDynamicLib' 就是上面定義的,本小程序使用此動態(tài)庫的別名。
// 這里的 'special-list' 是此動態(tài)庫的公開的自定義組件(publicComponents)的名稱。
// 動態(tài)庫有哪些公開的自定義組件,應(yīng)從各個動態(tài)庫的用戶文檔中得到。
// 這里的 'my-special-list' 也是個自己定的別名,本頁面或者本組件在模板中用此別名引用這個自定義組件。
"my-special-list": "dynamicLib://myDynamicLib/special-list"
}
}
從而頁面中可以使用此自定義組件:
<view class="container">
<view>下面這個自定義組件來自于動態(tài)庫</view>
<!-- 這里的 'my-special-list' 就是本頁面中對于此自定義組件的別名 -->
<my-special-list />
</view>
使用動態(tài)庫的 js 接口時,可以使用 requireDynamicLib 方法。例如,動態(tài)庫提供一個名為 getData 的方法,則可以像下面這樣調(diào)用:
// 這里的 'myDynamicLib' 就是上面定義的,本小程序使用此動態(tài)庫的別名。
let lib = requireDynamicLib('myDynamicLib');
// 這里調(diào)用動態(tài)庫里定義的一個叫做 getData 的方法。
// 動態(tài)庫有哪些公開的方法或?qū)傩钥梢员徽{(diào)用或訪問,應(yīng)從各個動態(tài)庫的用戶文檔中得到。
lib.getData();
自小程序基礎(chǔ)庫版本 3.180.3 、開發(fā)者工具 3.7.0 開始支持。
動態(tài)庫中頁面可作為小程序的啟動頁面,也可以作為被跳轉(zhuǎn)的頁面。
1.啟動打開動態(tài)庫頁面的配置方式:
調(diào)起協(xié)議中的路徑格式為:
__dynamicLib__/{dynamicLibName}/{dynamicLibPath}
2.路由跳轉(zhuǎn)的 url 格式為:
dynamicLib://{dynamicLibName}/{dynamicLibPath}
例如 navigateTo 路由跳轉(zhuǎn):
// 獲取基礎(chǔ)庫版本號
const {SDKVersion} = swan.getSystemInfoSync();
// 通過對比版本號,高于 3.180.3 時再調(diào)用
swan.navigateTo({
url: 'dynamicLib://dynamicLibName/pages/index/index'
});
即將要跳轉(zhuǎn)的頁面是動態(tài)庫 dynamicLibName
中的pages/index/index
頁面。
說明:
1.啟動頁面的 dynamicLibName 必須為線上動態(tài)庫的名字,不能為別名;
2.路由跳轉(zhuǎn) url 中的dynamicLibName
可以為線上動態(tài)庫的名字,也可以為別名,優(yōu)先當(dāng)做別名處理;
3.使用的動態(tài)庫需在小程序app.json
中的dynamicLib
字段中配置;
4.支持跳轉(zhuǎn)到動態(tài)庫頁面的 API 為: swan.navigateTo、swan.reLaunch、swan.redirectTo、swan.navigateToSmartProgram。
Tips:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: