百度智能小程序 使用動態(tài)庫

2020-09-05 14:59 更新

動態(tài)庫介紹

動態(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)庫代碼包

使用動態(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)庫時,動態(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>

js 接口

使用動態(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:

  • 使用動態(tài)庫,請確保小程序基礎(chǔ)庫版本在 3.60.2 及以上,開發(fā)者工具版本在 2.4.0 及以上。
  • 目前暫不支持開發(fā)者自行開發(fā)動態(tài)庫,但任何小程序開發(fā)者都可以使用已有動態(tài)庫。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號