微信小程序第三方開發(fā)平臺
微信小程序第三方開發(fā)平臺即小程序運營者,可以一鍵授權給第三方平臺,通過第三方平臺來完成業(yè)務,第三方平臺在小程序的前后端開發(fā)上同直接開發(fā)小程序有所區(qū)別,其所擁有的各項 API 以及詳細說明請查看“代小程序?qū)崿F(xiàn)業(yè)務”,其余部分請閱讀下文。
第三方平臺相關的小程序開發(fā)需要做一些特殊的處理:
小程序模板的開發(fā)
小程序模板結合 extAppid 的開發(fā)調(diào)試
使用 directCommit 直接提交至待審核列表 詳情
最新版本的開發(fā)工具支持第三方平臺小程序的開發(fā)和預覽。
創(chuàng)建項目
與開發(fā)普通小程序一致,第三方平臺開發(fā)者填入相關的 3rdMiniProgramAppid ,設定項目名稱和選擇項目目錄即可創(chuàng)建項目。
對于第三方平臺小程序,可以在項目頁卡查看到相關的 open3rd 信息以及當前的第三方的 3rdMiniProgramAppid ,如若項目配置了相關的 extAppid ,那么項目頁卡中也會有相關信息。
小程序模板開發(fā)
與開發(fā)普通小程序一致,開發(fā)者在開發(fā)工具上開發(fā)好相關的業(yè)務邏輯之后,在項目頁卡中提交預覽既可以在微信中查看小程序的真實表現(xiàn)。
有所不同的是,第三方平臺小程序的提交上傳是上傳至該第三方平臺的 open 帳號下的模板草稿箱中,該平臺的管理員需要自行對該模板進行相應的設置,更多請參考 開放平臺的文檔 。
extAppid 的開發(fā)調(diào)試
為了方便第三方平臺的開發(fā)者引入 extAppid 的開發(fā)調(diào)試工作,需要引入 ext.json 的概念。
ext.json 是一個配置文件,放置在小程序項目的根目錄下。
以下是一個包含了所有配置選項的 ext.json :
{ "extEnable": true, "extAppid": "wxf9c4501a76931b33", "directCommit": false, "ext": { "name": "wechat", "attr": { "host": "open.weixin.qq.com", "users": [ "user_1", "user_2" ] } }, "extPages": { "pages/logs/logs": { "navigationBarTitleText": "logs" } }, "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "Demo", "navigationBarTextStyle":"black" }, "tabBar": { "list": [{ "pagePath": "pages/index/index", "text": "首頁" }, { "pagePath": "pages/logs/logs", "text": "日志" }] }, "networkTimeout": { "request": 10000, "downloadFile": 10000 } }
ext.json中的配置字段分為兩種
特有的字段
同 app.json 相同的字段
特有的字段
屬性 | 類型 | 必填 | 描述 |
---|---|---|---|
extEnable | Boolean | 是 | 配置 ext.json 是否生效 |
extAppid | String | 是 | 配置 extAppid |
ext | Object | 否 | 開發(fā)自定義的數(shù)據(jù)字段 |
extPages | String Array | 否 | 單獨設置每個頁面的 json |
directCommit | Boolean | 否 | 是否直接提交到待審核列表 |
extEnable
extEnable 是一個 Boolean 類型的字段,用于規(guī)定當前的 ext.json 文件是否生效,開發(fā)者可以通過修改這個字段來開啟和關閉 extAppid 的結合開發(fā)。
extAppid
extAppid 是授權調(diào)試的 AppID ,例如開發(fā)者在此處填寫的是 wxf9c4501a76931b33 那么在 extEnable 為真的情況下,后續(xù)的開發(fā)邏輯都會基于 wxf9c4501a76931b33 來運行。
ext
ext 字段是開發(fā)自定義的數(shù)據(jù)字段,在小程序中可以通過 wx.getExtConfigSync 或者 wx.getExtConfig 獲取到這些配置信息。
例如上面的例子中,通過 wx.getExtConfigSync 就可以獲得 ext 字段的所有配置
{ "name": "wechat", "attr": { "host": "open.weixin.qq.com", "users": [ "user_1", "user_2" ] } }
extPages
extPages 是一個對象,對象中的每個 key 應該是該小程序模板 app.json 中定義的頁面,每個 key 對應的 value 是 page.json 中所規(guī)定的各項配置。
當開發(fā)者設置這個配置以后,小程序框架會對應的修改相對應的 page 的配置信息。
directCommit
directCommit 是一個 Boolean 類型的字段,用于規(guī)定當前的上傳操作是否是直接上傳到 extAppid 的審核列表中。
當 directCommit 為 true 真時,開發(fā)者在工具中的上傳操作,會直接上傳到對應的 extAppid 的審核列表,第三方平臺只需要調(diào)用 https://api.weixin.qq.com/wxa/submit_audit?access_token=TOKEN 既可以提交審核。更多請參考 第三方平臺文檔
當 directCommit 為 true 假時,開發(fā)者在工具中的上傳操作,會直接上傳到對應的草稿箱中。
tips: 可以使用工具的命令行接口 或者 http 接口來實現(xiàn)自動化的代碼提交審核
同 app.json 相同的字段
當 ext.json 中的字段同 app.json 中一致時,ext.json 的字段會覆蓋 app.json 中的對應字段,例如以下的 ext.json
{ ········ "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "ext navigationBarTitleText", "navigationBarTextStyle":"black" } }
那么該小程序最終的 navigationBarTitleText 應該是 ext navigationBarTitleText 。
第一步:綁定開發(fā)小程序
(1)第三方平臺的開發(fā)人員需先到微信公眾平臺(mp.weixin.qq.com)申請一個普通的小程序并完善小程序的頭像、昵稱、簡介、服務類目等信息。
(2)進入微信開放平臺,在第三方平臺詳情中,將該小程序添加為開發(fā)小程序。
注意:綁定為開發(fā)小程序后,該小程序的在開發(fā)工具中上傳,代碼會直接上傳到開放平臺,不會上傳到公眾平臺。
第二步:小程序模版的開發(fā)和上傳
使用開發(fā)小程序的開發(fā)者微信號登錄微信web開發(fā)者工具(IDE),開發(fā)者工具中按照正常的小程序開發(fā)流程進行代碼開發(fā)和調(diào)試。開發(fā)完成后,在開發(fā)工具中點擊上傳。
第三步:添加到小程序模版庫,獲得模版ID
從開發(fā)者工具中上傳的代碼,會先存在草稿箱中,每個開發(fā)小程序只保留最新一份上傳記錄。開發(fā)者可將草稿箱中的代碼添加到小程序模版庫中,小程序模版庫中的模版不會被覆蓋。最多可以有五十個代碼模版,添加后可以獲得模版ID(TemplateID)。
第四步:調(diào)用接口,為旗下授權的小程序部署代碼
具體接口詳見“代碼管理”文檔中的接口。
重點提示:
小程序授權托管之后,只能使用第三方平臺的在微信開放平臺登記的服務器地址。所以第三方平臺在幫助旗下公眾號發(fā)布代碼之前,需先把服務器地址設置到小程序的服務器地址中,設置接口詳見“修改服務器地址”文檔中的接口。
掃二維碼手機查看該文章
- 上一篇:微信小程序自定義組件
- 下一篇:微信小程序之Wi-Fi-小程序打通接口文檔