小程序第三方開(kāi)發(fā)平臺(tái),小程序官方認(rèn)可的第三方開(kāi)發(fā)商
概述
同開(kāi)發(fā)普通的小程序不同,開(kāi)發(fā)第三方平臺(tái)小程序具有一定的復(fù)雜性,首先需要確認(rèn)三個(gè)概念:
- open3rd:第三方平臺(tái),是小程序官方認(rèn)可的第三方開(kāi)發(fā)商 詳情
- 3rdMiniProgramAppid:第三方平臺(tái)申請(qǐng)的并綁定在該平臺(tái)上的小程序,用于開(kāi)發(fā)小程序模板
- extAppid:授權(quán)給第三方平臺(tái)的小程序
因?yàn)橐陨系倪@些不同,第三方平臺(tái)相關(guān)的小程序開(kāi)發(fā)需要做一些特殊的處理:
- 小程序模板的開(kāi)發(fā)
- 小程序模板結(jié)合 extAppid 的開(kāi)發(fā)調(diào)試
最新版本的開(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",
"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
相同的字段
特有的字段
屬性 | 類(lèi)型 | 必填 | 描述 |
---|---|---|---|
extEnable | Boolean | 是 | 配置 ext.json 是否生效 |
extAppid | String | 是 | 配置 extAppid |
ext | Object | 否 | 開(kāi)發(fā)自定義的數(shù)據(jù)字段 |
extPages | String Array | 否 | 單獨(dú)設(shè)置每個(gè)頁(yè)面的 json |
extEnable
extEnable
是一個(gè) Boolean
類(lèi)型的字段,用于規(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ā)者在此處填寫(xiě)的是 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
的配置信息。
同 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ā)教程,關(guān)注hi小程序。
第二部分:如何開(kāi)通一個(gè)小商店