插件介紹
插件是對一組 js 接口、自定義組件 或頁面的封裝,用于嵌入到小程序中使用。插件不能獨立運行,必須嵌入在其他小程序中才能被用戶使用;而第三方小程序在使用插件時,也無法看到插件的代碼。因此,插件適合用來封裝自己的功能或服務,提供給第三方小程序進行展示和使用。
插件開發者可以像開發小程序一樣編寫一個插件并上傳代碼,在插件發布之后,其他小程序方可調用。小程序平臺會托管插件代碼,其他小程序調用時,上傳的插件代碼會隨小程序一起下載運行。
相對于普通 js 文件或自定義組件,插件擁有更強的獨立性,擁有獨立的 API 接口、域名列表等,但同時會受到一些限制,如 一些 API 無法調用或功能受限。還有個別特殊的接口,雖然插件不能直接調用,但可以使用 插件功能頁 來間接實現。
接入流程
以下為插件開發接入流程:
- 開通插件功能
- 填寫開發信息并開發
- 完善基本信息
- 提交審核、發布
- 管理插件使用申請
開通插件功能
開發插件前,請閱讀了解 《小程序插件接入指南》 了解開通流程及開放范圍,并開通插件功能。如果未開通插件功能,將無法上傳插件。
插件開發
插件開發文檔
插件的功能描述、使用步驟等,例如:收錢吧輕pos插件的說明文檔
使用插件
添加插件
小程序管理后臺的“設置-第三方設置-插件管理”中添加插件。
開發者可登錄小程序管理后臺,通過 appid 查找插件并添加。如果插件無需申請,添加后可直接使用;否則需要申請并等待插件開發者通過后,方可在小程序中使用相應的插件。
引入插件代碼包
使用插件前,使用者要在 app.json 中聲明需要使用的插件,例如:
{"plugins": {// 插件名稱"lite-pos-plugin": {"version": "1.0.0", // 插件的版本號"provider": "wx7903bb295ac26ac7" // 插件的appid}}
}
插件的自定義組件
使用插件提供的自定義組件,和 使用普通自定義組件 的方式相仿。在 json 文件定義需要引入的自定義組件時,使用 plugin:// 協議指明插件的引用名和自定義組件名,例如:
{"usingComponents": {"hello-component": "plugin://myPlugin/hello-component"}
}
插件頁面跳轉
需要跳轉到插件頁面時,url 使用 plugin:// 前綴,形如 plugin://PLUGIN_NAME/PLUGIN_PAGE, 如:
<navigator url="plugin://myPlugin/hello-page">Go to pages/hello-page!
</navigator>
wx.navigateGo({url: `plugin://lite-pos-plugin/cashierV2?token=${order_token}&appid=${appId}&openid=${open_id}&selected=giftcard&union_id=${union_id}`
});
插件的js接口
使用插件的 js 接口時,可以使用 requirePlugin 方法。例如,插件提供一個名為 hello 的方法和一個名為 world 的變量,則可以像下面這樣調用:
var myPluginInterface = requirePlugin('myPlugin');myPluginInterface.hello();
var myWorld = myPluginInterface.world;
基礎庫 2.14.0 起,也可以通過插件的 AppID 來獲取接口,如:
var myPluginInterface = requirePlugin('wxidxxxxxxxxxxxxxxxx');
接入成功案例
收錢吧輕POS插件=>歐舒丹