欧美日韩精品一区二区在线线,一级无码在线收看,精品国产高清91,久久精品欧美电影

# 插件功能頁

插件功能頁從小程序基礎(chǔ)庫版本 2.1.0 開始支持。

某些接口不能在插件中直接調(diào)用(如 wx.login),但插件開發(fā)者可以使用插件功能頁的方式來實現(xiàn)功能。目前,插件功能頁包括:

從基礎(chǔ)庫版本 2.22.1 起,以下功能頁已經(jīng)廢棄,可以直接調(diào)用對應(yīng)接口實現(xiàn)功能:

從基礎(chǔ)庫版本 2.16.1 起,以下三個功能頁已經(jīng)廢棄,可以直接調(diào)用對應(yīng)接口實現(xiàn)功能;原有和新使用的 <functional-page-navigator> 在點擊后將不會跳到功能頁,而是直接生效:

要使用插件功能頁,需要先激活功能頁特性,配置對應(yīng)的功能頁函數(shù),再使用 functional-page-navigator 組件跳轉(zhuǎn)到插件功能頁,從而實現(xiàn)對應(yīng)的功能。詳情請參考下文。

使用插件功能頁前,需要確定插件已經(jīng) 開通,否則可能出現(xiàn) functional-page-navigator 點擊后無響應(yīng)等情況

# 插件所有者小程序

開始開發(fā)之前,我們需要知道,插件功能頁是指 插件所有者小程序 中的一個特殊頁面。

插件所有者小程序,指的是與插件 AppID 相同的小程序。例如,“小程序示例”小程序開發(fā)了一個“小程序示例插件”,那么無論這個插件被哪個小程序使用,這個插件的 插件所有者小程序 都是“小程序示例”。下文中會繼續(xù)使用 插件所有者小程序 這個說法。

# 插件所有者小程序開發(fā)方法

通常,在開始使用插件功能頁的時候,需要開啟兩個開發(fā)者工具窗口,其中一個打開插件項目,另一個打開插件所有者小程序的小程序項目。例如,一個打開“小程序示例插件”項目,另一個打開“小程序示例”項目。

這兩個窗口,前者用于編輯插件,后者用于編輯插件所有者小程序。下文中所有需要編輯插件所有者小程序的內(nèi)容,都是在后者中進(jìn)行。

# 激活功能頁特性

要在插件中調(diào)用插件功能頁,需要先激活插件所有者小程序的功能頁特性。具體來說,在插件所有者小程序的 app.json 文件中添加 functionalPages 定義段,并令其值為 true ,例如:

代碼示例:

{
  "functionalPages": {
    "independent": true
  }
}

目前,兼容舊式寫法:

{
  "functionalPages": true
}

舊式寫法將在未來將被移除支持,未來將不能編譯上傳。

這兩種寫法的區(qū)別在于,新式的寫法 "independent": true 會使得插件功能頁的代碼獨立于其他代碼,這意味著插件功能頁可以被獨立下載、加載,具有更好的性能表現(xiàn)。 但也同時使得插件功能頁目錄 functional-pages/ (支付功能頁會使用其中的文件)不能 require 這個目錄以外的文件(反之亦然:這個目錄以外的文件也不能調(diào)用這個目錄內(nèi)的)。

注意,新增或改變這個字段時,需要這個小程序發(fā)布新版本,才能在正式環(huán)境中使用插件功能頁。

# 跳轉(zhuǎn)到功能頁

功能頁不能使用 wx.navigateTo 來進(jìn)行跳轉(zhuǎn),而是需要一個名為 functional-page-navigator 的組件。以獲取用戶信息為例,可以在插件中放置如下的 functional-page-navigator

代碼示例:

<functional-page-navigator name="loginAndGetUserInfo" args="" version="develop" bind:success="loginSuccess">
  <button>登錄到插件</button>
</functional-page-navigator>

用戶在點擊這個 navigator 時,會自動跳轉(zhuǎn)到插件所有者小程序的對應(yīng)功能頁。功能頁會提示用戶進(jìn)行登錄或其他相應(yīng)的操作。操作結(jié)果會以組件事件的方式返回。

functional-page-navigator 的參數(shù)和詳細(xì)使用方法可以參考 組件說明

從小程序基礎(chǔ)庫版本 2.4.0 開始,支持插件所有者小程序跳轉(zhuǎn)到自己的功能頁。在基礎(chǔ)庫版本低于 2.4.0 時,點擊跳轉(zhuǎn)到自己的功能頁的 functional-page-navigator 將沒有任何反應(yīng)。

# 真機開發(fā)測試的常規(guī)步驟

目前,功能頁的跳轉(zhuǎn)目前不支持在開發(fā)者工具中調(diào)試,請在真機上測試。初次進(jìn)行真機開發(fā)測試時,通常步驟如下:

  1. 在開發(fā)者工具上打開插件所有者小程序項目,并點擊“預(yù)覽”;
  2. 用測試用的真機掃一下預(yù)覽二維碼,此時會進(jìn)入插件所有者小程序,進(jìn)入后就可以直接退出這個小程序;
  3. 在開發(fā)者工具上打開插件項目,將插件中 functional-page-navigator 中的 version 屬性設(shè)置為 develop;
  4. 點擊預(yù)覽可以生成插件預(yù)覽二維碼,用測試用的真機掃碼即可預(yù)覽功能頁;如果更改了插件代碼,重新生成并掃描插件的預(yù)覽二維碼即可;
  5. 如果過了一段時間之后,跳轉(zhuǎn)功能頁時出現(xiàn)“開發(fā)版已過期”這樣的提示,從第 1 步開始重試一次。

注意functional-page-navigatorversion=develop 僅用于調(diào)試,因此在插件提審前,需要:

  1. 確保已發(fā)布設(shè)置了 "functionalPages": true 的插件所有者小程序;
  2. 確保所有的 functional-page-navigator 組件屬性設(shè)置為 version="release" 。

# 功能頁常見問題 FAQ

# 如何正確編輯插件所有者小程序?

  • 應(yīng)該在開發(fā)者工具的“小程序”類型項目中編輯,而不是在“插件”類型的項目中編輯。比如,“小程序示例插件”的所有者小程序是“小程序示例”,它們的 AppID 都是 wxidxxxxxxxxxxxxxx ,如果是初次開發(fā)“小程序示例”小程序,可以在開發(fā)者工具中創(chuàng)建一個小程序項目,其 AppID 為 wxidxxxxxxxxxxxxxx ;如果之前開發(fā)過“小程序示例”小程序,直接打開之前的小程序項目即可。

# 點擊 functional-page-navigator 之后沒有任何反應(yīng)。

  • 請檢查引用插件的小程序和插件本身是不是同一個 AppID ,如果是,跳轉(zhuǎn)到自己的功能頁需要基礎(chǔ)庫 2.4.0 支持,否則使用 functional-page-navigator 不會有任何反應(yīng)。

# 點擊 functional-page-navigator 之后,展示了一個頁面提示“頁面不存在”。

  • 這種情況是因為插件所有者小程序沒有正確設(shè)置 "functionalPages": true 。如果 functional-page-navigatorversion="develop" ,這部手機需要掃碼并進(jìn)入插件所有者小程序一次;如果 version="release" ,請確保包含 "functionalPages": true 的插件所有者小程序已被發(fā)布。

# 點擊 <functional-page-navigator version="develop"> 之后,彈窗提示“小程序開發(fā)版已過期”。

  • 遇到這種情況,重新掃碼并進(jìn)入插件所有者小程序一次即可。

# 點擊 <functional-page-navigator name="requestPayment"> 之后,展示了一個頁面提示“該功能無法使用”。

  • 在使用插件功能頁時,小程序不能是個人小程序,同時,插件也需要額外的步驟申請開通插件支付權(quán)限(位于 管理后臺 -> 小程序插件 -> 基本設(shè)置 -> 支付能力 )。

# 點擊 <functional-page-navigator name="requestPayment"> 之后,點擊頁面中的“支付”按鈕,立刻退出了支付功能頁。

  • 這通常是因為沒有找到功能頁函數(shù) beforeRequestPayment ,請檢查插件所有者小程序的 functional-pages/request-payment.js 文件和其中的 beforeRequestPayment 函數(shù)是否存在。

# 點擊 functional-page-navigator 之后,展示了一個僅有返回按鈕的頁面。

# 開發(fā)版可以正常跳轉(zhuǎn),但審核反饋不能跳轉(zhuǎn)。

  • 請發(fā)布設(shè)置了 "functionalPages": true 的插件所有者小程序,且所有的 functional-page-navigator 組件屬性設(shè)置為 version="release" 。

# Bugs & Tip

  • 功能頁是插件所有者小程序中的一個特殊頁面,開發(fā)者不能自定義這個頁面的外觀。
  • 插件所有者小程序本身也可以引用這個插件,此時,functional-page-navigator 組件的 version 屬性將不會生效,而是取決于當(dāng)前運行的插件所有者小程序的版本。
  • functional-page-navigator 可以在開發(fā)者工具中使用,但功能頁的跳轉(zhuǎn)目前不支持在開發(fā)者工具中調(diào)試,請在真機上測試。
  • Bug:在微信版本 6.6.7 中,功能頁被拉起時會觸發(fā) App 的部分生命周期并使得功能頁啟動時間變得比較長。在后續(xù)的微信版本中這一行為會發(fā)生變更,使 App 生命周期不再被觸發(fā)。