使用行业插件
收藏
我的收藏

使用限制

    使用插件前请完成插件获取与申请。​
    支持已使用分包、独立分包的主体小程序应用插件。​
    小程序插件只支持在小程序中使用。​

插件声明引用

使用插件前,使用者需要在 app.json 中静态声明需要使用的插件,根据插件不同类型,使用不同引用方式说明:​
    指定版本引用:小程序在代码中写入需要引用的指定插件版本号。当插件版本发生变更且需要引用新版本时,仅能通过修改小程序代码中的引用版本号并进行小程序发版来更新。​
{ "plugins": { "myPlugin": { // plugin别名 "version": "1.0.0", //指定版本 "provider": "ttidxxxxxxxxxxxxxxxx" //pluginID } } }
    订阅插件最新版本:不需要小程序开发者主动感知具体插件版本号,默认引用小程序所拥有调用权限的最新插件版本。插件开发者有发布新的插件版本,小程序引用插件时会自动拉最新版本插件。​
{ "plugins": { "myPlugin": { // plugin别名 "version": "*", // 订阅最新版本 "provider": "ttidxxxxxxxxxxxxxxxx"//pluginID } } }

版本兼容

使用动态加载插件的小程序项目需要 4.3.3 或以上版本的 IDE 才能编译构建。​
插件的运行要求小程序基础库为 3.49.0 及以上版本,小程序在动态加载插件的时候,需要按照以下方式兼容:​
// app.js if (tt.canIUse('requirePlugin')) { const myPlugin = requirePlugin(pluginID) if (tt.canIUse('myPlugin.hello')) { myPlugin.hello() } } else { }

JS 接口

使用插件的 JS 接口时,可以使用 requirePlugin 方法。​
该示例先通过 requirePlugin 或者importPlugin 引用插件 API,然后访问插件暴露的 xxx_api 函数以及 world 变量。​
// 异步 Promise const myPlugin = await importPlugin(pluginID) console.log(myPlugin.world) const pluginPromise = importPlugin(pluginID) pluginPromise.then((plugin) => { console.log(plugin) // { add: fn, subtract: fn } }) // 同步调用,阻塞执行 const myPlugin = tt.requirePlugin(pluginID) myPlugin.xxx_api(); // 调用所引用插件的 api。此处 xxx_api 为 api 示例名称,请开发者自行替换为实际调用 api 名称 const world = myPlugin.world;

页面

跳转到插件页面时, URL 使用 myPlugin:// 或者 pluginID://为前缀,格式为 pluginID://pagepath,如下所示:​
<navigator url="myPlugin://hello-page">Go to pages/hello page!</navigator>
也可以使用 API 进行跳转:​
tt.navigateTo({ url: `tt36b44009a99e9b3211://counter-page?num=${this.data.pluginNum}`, success(res) { console.log('navigateToPlugin success', res) }, fail(err) { console.error('navigateToPlugin err', err) } })

组件

在页面json 文件定义需要引入的自定义组件时,使用 pluginID:// 声明使用插件中的组件,例如:​
代码示例:
//页面.json { "usingComponents": { "hello-component": "pluginID://hello-component" } } //页面.ttml <view class="hello-comp"> <hello-component paramList="{{List}}" paramInt=4 /> </view>