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