引入插件代码包
使用插件前,使用者要在 app.js 的配置中声明需要使用的插件,例如
import Taro, { Component } from '@tarojs/taro'class App extends Component {config = {plugins: {myPlugin: {version: '1.0.0',provider: 'wxidxxxxxxxxxxxxxxxx'}}}}
如上例所示, plugins 定义段中可以包含多个插件声明,每个插件声明以一个使用者自定义的插件引用名作为标识,并指明插件的 appid 和需要使用的版本号。其中,引用名(如上例中的 myPlugin)由使用者自定义,无需和插件开发者保持一致或与开发者协调。在后续的插件使用中,该引用名将被用于表示该插件。
使用插件
使用插件时,插件的代码对于使用者来说是不可见的。为了正确使用插件,使用者应查看插件详情页面中的“开发文档”一节,阅读由插件开发者提供的插件开发文档,通过文档来明确插件提供的自定义组件、页面名称及提供的 js 接口规范等。
自定义组件
使用插件提供的自定义组件,和上述 “引入第三方组件” 的方式相仿,在页面或组件的配置中定义需要引入的自定义组件时,使用 plugin:// 协议指明插件的引用名和自定义组件名,例如:
import Taro, { Component } from '@tarojs/taro'export default class PageA extends Component {config = {// 定义需要引入的插件usingComponents: {'hello-component': 'plugin://myPlugin/hello-component'}}}
出于对插件的保护,插件提供的自定义组件在使用上有一定的限制:
- 默认情况下,页面中的
this.$scope.selectComponent接口无法获得插件的自定义组件实例对象; Taro.createSelectorQuery等接口的>>>选择器无法选入插件内部。页面
插件的页面从小程序基础库版本 2.1.0 开始支持。
需要跳转到插件页面时,url 使用plugin://前缀,形如plugin://PLUGIN_NAME//PLUGIN_PAGE, 如:<Navigator url='plugin://myPlugin/hello-page'>Go to pages/hello-page!</Navigator>
js 接口
使用插件的js接口时,可以使用Taro.requirePlugin方法。例如,插件提供一个名为hello的方法和一个名为world的变量,则可以像下面这样调用:const myPluginInterface = requirePlugin('myPlugin')const myWorld = myPluginInterface.worldmyPluginInterface.hello()
