小程序第三方開發(fā)平臺(tái),小程序官方認(rèn)可的第三方開發(fā)商
概述
同開發(fā)普通的小程序不同,開發(fā)第三方平臺(tái)小程序具有一定的復(fù)雜性,首先需要確認(rèn)三個(gè)概念:
- open3rd:第三方平臺(tái),是小程序官方認(rèn)可的第三方開發(fā)商 詳情
- 3rdMiniProgramAppid:第三方平臺(tái)申請(qǐng)的并綁定在該平臺(tái)上的小程序,用于開發(fā)小程序模板
- extAppid:授權(quán)給第三方平臺(tái)的小程序
因?yàn)橐陨系倪@些不同,第三方平臺(tái)相關(guān)的小程序開發(fā)需要做一些特殊的處理:
- 小程序模板的開發(fā)
- 小程序模板結(jié)合 extAppid 的開發(fā)調(diào)試
最新版本的開發(fā)工具支持第三方平臺(tái)小程序的開發(fā)和預(yù)覽。
創(chuàng)建項(xiàng)目
與開發(fā)普通小程序一致,第三方平臺(tái)開發(fā)者填入相關(guān)的 3rdMiniProgramAppid ,設(shè)定項(xiàng)目名稱和選擇項(xiàng)目目錄即可創(chuàng)建項(xiàng)目。
對(duì)于第三方平臺(tái)小程序,可以在項(xiàng)目頁卡查看到相關(guān)的 open3rd 信息以及當(dāng)前的第三方的 3rdMiniProgramAppid ,如若項(xiàng)目配置了相關(guān)的 extAppid ,那么項(xiàng)目頁卡中也會(huì)有相關(guān)信息。
小程序模板開發(fā)
與開發(fā)普通小程序一致,開發(fā)者在開發(fā)工具上開發(fā)好相關(guān)的業(yè)務(wù)邏輯之后,在項(xiàng)目頁卡中提交預(yù)覽既可以在微信中查看小程序的真實(shí)表現(xiàn)。
有所不同的是,第三方平臺(tái)小程序的提交上傳是上傳至該第三方平臺(tái)的 open 帳號(hào)下的模板草稿箱中,該平臺(tái)的管理員需要自行對(duì)該模板進(jìn)行相應(yīng)的設(shè)置,更多請(qǐng)參考 開放平臺(tái)的文檔 。
extAppid 的開發(fā)調(diào)試
為了方便第三方平臺(tái)的開發(fā)者引入 extAppid 的開發(fā)調(diào)試工作,需要引入 ext.json
的概念。
ext.json
是一個(gè)配置文件,放置在小程序項(xiàng)目的根目錄下。
以下是一個(gè)包含了所有配置選項(xiàng)的 ext.json
:
{
"extEnable": true,
"extAppid": "wxf9c4501a76931b33",
"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 | 否 | 單獨(dú)設(shè)置每個(gè)頁面的 json |
extEnable
extEnable
是一個(gè) Boolean
類型的字段,用于規(guī)定當(dāng)前的 ext.json
文件是否生效,開發(fā)者可以通過修改這個(gè)字段來開啟和關(guān)閉 extAppid 的結(jié)合開發(fā)。
extAppid
extAppid
是授權(quán)調(diào)試的 AppID
,例如開發(fā)者在此處填寫的是 wxf9c4501a76931b33
那么在 extEnable
為真的情況下,后續(xù)的開發(fā)邏輯都會(huì)基于 wxf9c4501a76931b33
來運(yùn)行。
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
是一個(gè)對(duì)象,對(duì)象中的每個(gè) key
應(yīng)該是該小程序模板 app.json
中定義的頁面,每個(gè) key
對(duì)應(yīng)的 value
是 page.json 中所規(guī)定的各項(xiàng)配置。
當(dāng)開發(fā)者設(shè)置這個(gè)配置以后,小程序框架會(huì)對(duì)應(yīng)的修改相對(duì)應(yīng)的 page
的配置信息。
同 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
。
更多微信小程序開發(fā)教程,關(guān)注hi小程序。
第二部分:如何開通一個(gè)小商店