开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
开始使用
ampe
多端开发
鸿蒙
插件
插件获取与使用
插件开发
插件发布
插件管理
插件技术知识汇总
附录
安全
openid 开发指南
扩展能力
开发 > 指南 > 插件 > 插件开发 > 插件开发
收藏
订阅更新
我的文档
设置
简介
开发者可通过 > 对应小程序详情页 > 开发 > 插件服务 来获取和使用插件。详情可查看 获取插件
注意:
插件 .acss 文件中,基本选择器只支持 id 与 class 选择器,不支持标签、属性、通配符选择器。
如需获取宿主 appid,可以通过 my.getparentappidsync() 进行调用。
不支持使用 getapp 方法 获取当前 app 实例。
不支持通过 getcurrentpages 方法 获取小程序的页面信息。
不支持通过 在插件内部调用 my.loadplugin 来加载其它插件。
不支持在插件内使用 web-view组件。
插件目录结构
插件可以包含若干个 自定义组件页面 和一组 js 接口。插件 plugin 文件夹中的示例目录内容如下:
javascript
复制代码
plugin
|-----components // 插件提供的自定义组件(可以有多个)
|----------hello-component
| |----hello-component.acss
| |----hello-component.axml
| |----hello-component.js
| |----hello-component.json
|-----pages // 插件提供的页面(可以有多个)
|----------hello-page
| |----hello-page.acss
| |----hello-page.axml
| |----hello-page.js
| |----hello-page.json
|----------index
| |----index.acss
| |----index.axml
| |----index.js
| |----index.json
|-----index.js // 插件的 js 接口
|-----plugin.json // 插件配置文件
插件配置文件
向第三方小程序开放的所有组件、页面和 js 接口都必须在 plugin.json 中声明,格式如下:
每个配置的含义如下:
publiccomponents: 列出所有向小程序开放的自定义组件。
publicpages: 列出所有向小程序开放的页面。
pages: 列出插件所有页面(包含向小程序开放的以及不向小程序开放的页面)。
lazycodeloading:开启插件精细化运行。开启后,插件初始化时,仅执行必要逻辑,当使用特定页面和组件时,才进行页面和组件的注册逻辑。支持配置 renderedcomponents
main: 插件面向第三方小程序的 js 接口。
创建插件项目
前提条件
创建小程序插件的前提是拥有并关联已有的小程序,否则将无法上传插件。详情可查看 创建小程序
创建步骤
1打开 小程序开发者工具(ide 版本要求在 0.60 及以上),左侧选择 小程序插件,点击 号面板新建项目。

2选择要发布的端并点击 下一步

3选择空白模板并点击 下一步

4完成 项目名称项目路径 设置并点击 完成

5关联小程序插件应用,详情可查看 插件应用创建注意: 必须关联应用,否则无法进行代码打包上传。

6新建的插件类型项目的文件如下图所示。
pages 文件夹:小程序代码目录,用于调试插件代码。 说明: pages 文件夹不可删除,文件夹中的代码可以当作普通小程序来编写。
plugin 文件夹: 插件代码目录。

开发插件
开发者如需在发布插件时展示插件 demo 请在 miniprogram 文件夹下编辑相关代码,否则发布插件至服务市场或插件中心后不会展示相关内容。
组件
插件可以直接使用基础组件或扩展组件,也可自定义组件,这些组件在插件内可以互相引用,但提供给第三方小程序使用的自定义组件必须在 plugin.json 配置文件中的 publiccomponents 中声明。
插件自定义组件与普通自定义组件一致,每个自定义组件由 axml、acss、js 以及 json 四个文件组成,详情可查看 自定义组件文档
页面
插件可以自定义若干个页面,支持从本插件的自定义组件、其他页面或者第三方小程序中进行跳转。其中,提供给第三方小程序跳转的页面必须在 plugin.json 配置文件中的 publicpages 和 pages 中声明。
插件页面与普通小程序的页面一致,每个页面由 axml、acss、js 以及 json 四个文件组成,详情可查看 页面文档
插件页面跳转
插件执行页面跳转的时候,可以使用基础组件 navigator 页面链接 或者 api my.navigateto
注意:
出于安全性考虑,插件不支持随意跳转至小程序的页面。如有相关需求,可以将跳转方式包装成方法,通过插件暴露的 api,传递给插件,插件内部可以通过这些方法实现跳转。
不支持在插件中使用 my.switchtab,其他 api 可以正常使用。
不支持插件作为凯发k8官方网娱乐官方首页。
接口
插件可以在接口文件(在 plugin.json 配置文件中指定,详情见上文 插件配置文件)中导出一些 js 接口,供插件的使用者调用。
示例代码
获取小程序导出
从基础库 2.7.7 起,在插件中使用全局函数 requireminiprogram,可以获取由宿主小程序导出的内容。例如,宿主小程序做了如下导出:
那么在插件中,可以这样获得内容:
具体获取内容,可以阅读 插件使用 文档,和宿主小程序做好约定。
引用宿主小程序的自定义组件
有时,插件可能需要在页面或者自定义组件中,将一部分区域交给使用的宿主小程序来渲染,因此需要能够引用宿主小程序的自定义组件。但由于插件中不能直接指定宿主小程序的自定义组件路径,因此无法直接通过 usingcomponents 的方式来引用。这里介绍通过 抽象节点 来实现引用的方式。 如果是插件自定义组件(例如 plugin-view),那么我们可以通过声明一个抽象节点:
并在希望显示宿主小程序组件的位置引用:
在宿主小程序中引用 plugin-view 时,就可以传递组件给插件进行渲染了:
如果是插件页,插件页本身就是一个页面顶层组件,宿主小程序不会引用它,无法通过 generic:xxx="yyy" 的方式来指定抽象节点实现;因此,从基础库 2.8.9ide 3.7.1 起,宿主小程序可以在 app.json 的插件的配置里为插件页指定抽象节点实现。例如插件页面名为 plugin-index,则可以:
另外也可以参考 插件使用的相关文档
真机预览
点击 ide 中右上角 真机调试预览 按钮查看效果。
上传插件
完成开发后点击界面右上角 上传。完成插件上传后,可进入 对插件进行管理,如 插件提审
其他注意事项
app.json 默认配置
插件端默认的 miniprogram 目录的 app.json 如下所示
getcurrentpages
getcurrentpages 用于返回当前页面栈,默认返回过程中存在如下限制:
插件页中调用该方法无法获取小程序页面栈信息,即对应的小程序页面在获取的页面栈中值为 null。
小程序页中调用该方法无法获取插件页面栈信息,即对应的插件页面在获取的页面栈中值为 null。
例如当前的页面栈从栈底到栈顶依次为:小程序页面 a、小程序页面 b、插件页面 c、插件页面 d。
在小程序页中调用 getcurrentpages 方法返回页面栈:
在插件页中调用 getcurrentpages 方法返回页面栈:
基础库 2.7.7 起新增 getallpages 参数可以获取所有的页面栈信息,具体可查看 getcurrentpages 方法
插件场景下各种跳转方式指南
插件跳转至宿主小程序页面
出于安全性考虑,插件不支持随意跳转至小程序的页面。如有相关需求,可以将跳转方式包装成方法,通过插件暴露的 api,传递给插件,插件内部可以通过这些方法实现跳转。详情请下载 压缩包。
插件代码
宿主代码
插件跳转至其它小程序页面
插件代码
插件跳转至其它插件页面
插件不允许跳转到其他插件,如果业务上实在有需求可以使用 插件跳小程序页面 的方法,借助宿主进行跳转。
插件代码
宿主代码
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图