QQ小程序 使用插件

2020-07-02 17:48 更新

添加插件

開發(fā)者工具0.1.29版本開始支持插件功能。

引入插件代碼包

使用插件前,使用者要在 app.json 中聲明需要使用的插件,例如:

代碼示例:
{
  "plugins": {
    "myPlugin": {
      "version": "1.0.0",
      "provider": "qqidxxxxxxxxxxxxxxxx"
    }
  }
}

如上例所示, plugins 定義段中可以包含多個插件聲明,每個插件聲明以一個使用者自定義的插件引用名作為標(biāo)識,并指明插件的 appid 和需要使用的版本號。其中,引用名(如上例中的 myPlugin)由使用者自定義,無需和插件開發(fā)者保持一致或與開發(fā)者協(xié)調(diào)。在后續(xù)的插件使用中,該引用名將被用于表示該插件。

在分包內(nèi)引入插件代碼包

如果插件只在一個分包內(nèi)用到,可以將插件僅放在這個分包內(nèi),例如:

{
  "subpackages": [
    {
      "root": "packageA",
      "pages": ["pages/cat", "pages/dog"],
      "plugins": {
        "myPlugin": {
          "version": "1.0.0",
          "provider": "qqidxxxxxxxxxxxxxxxx"
        }
      }
    }
  ]
}

在分包內(nèi)使用插件有如下限制:

  • 僅能在這個分包內(nèi)使用該插件;
  • 同一個插件不能被多個分包同時引用;
  • 目前,還不能從分包外的頁面直接跳入分包內(nèi)的插件頁面,需要先跳入分包內(nèi)的非插件頁面、再跳入同一分包內(nèi)的插件頁面。

使用插件

使用插件時,插件的代碼對于使用者來說是不可見的。為了正確使用插件,使用者應(yīng)查看插件詳情頁面中的“開發(fā)文檔”一節(jié),閱讀由插件開發(fā)者提供的插件開發(fā)文檔,通過文檔來明確插件提供的自定義組件、頁面名稱及提供的 js 接口規(guī)范等。

自定義組件

使用插件提供的自定義組件,和使用普通自定義組件的方式相仿。在 json 文件定義需要引入的自定義組件時,使用 plugin:// 協(xié)議指明插件的引用名和自定義組件名,例如: 代碼示例:

{
  "usingComponents": {
    "hello-component": "plugin://myPlugin/hello-component"
  }
}

出于對插件的保護(hù),插件提供的自定義組件在使用上有一定的限制:

  • 默認(rèn)情況下,頁面中的 this.selectComponent 接口無法獲得插件的自定義組件實(shí)例對象;
  • qq.createSelectorQuery 等接口的 >>> 選擇器無法選入插件內(nèi)部。

頁面 需要跳轉(zhuǎn)到插件頁面時,url 使用plugin:// 前綴,形如 plugin://PLUGIN_NAME//PLUGIN_PAGE, 如: 代碼示例:

<navigator url="plugin://myPlugin/hello-page">
  Go to pages/hello-page!
</navigator>

js 接口 使用插件的 js 接口時,可以使用 requirePlugin 方法。例如,插件提供一個名為 hello 的方法和一個名為 world 的變量,則可以像下面這樣調(diào)用:

const myPluginInterface = requirePlugin('myPlugin')


myPluginInterface.hello()
const myWorld = myPluginInterface.world
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號