app.json文件用來(lái)對(duì)微信小程序進(jìn)行全局配置,決定頁(yè)面文件的路徑、窗口表現(xiàn)、設(shè)置網(wǎng)絡(luò)超時(shí)時(shí)間、設(shè)置多 tab 等
? ? ? ? ? ? ? ? ? ? ? ? ? ? 第一部分:整體程序 app 之a(chǎn)pp.json文件(配置小程序項(xiàng)目)
一:在第二節(jié) 小程序目錄結(jié)構(gòu)中描述到"一個(gè)描述整體程序的 app 之a(chǎn)pp.json文件(配置小程序項(xiàng)目)"
作用:對(duì)微信小程序進(jìn)行全局配置,決定頁(yè)面文件的路徑、窗口表現(xiàn)、設(shè)置網(wǎng)絡(luò)超時(shí)時(shí)間、設(shè)置多 tab 等。
所有的選項(xiàng)配置pages、window、tabBar、networkTimeout、debug
app.json 配置項(xiàng)列表:
? ??屬性? ? ? ? ? ? ? ? ? ? ? ? ? ?類型? ? ? ? ? ? ? ? ? ?必填? ? ? 描述
? ??pages? ? ? ? ? ? ? ? ? ? ? ? ?String Array? ? ?是? ? ? ? ? 設(shè)置頁(yè)面路徑
? ??window? ? ? ? ? ? ? ? ? ? ?Object? ? ? ? ? ? ? ?否? ? ? ? ? ?設(shè)置默認(rèn)頁(yè)面的窗口表現(xiàn)
? ??tabBar? ? ? ? ? ? ? ? ? ? ? ?Object? ? ? ? ? ? ? ?否? ? ? ? ? ?設(shè)置底部 tab 的表現(xiàn)
? ??networkTimeout? ? ?Object? ? ? ? ? ? ? ?否? ? ? ? ? ?設(shè)置網(wǎng)絡(luò)超時(shí)時(shí)間
? ??debug? ? ? ? ? ? ? ? ? ? ? ? Boolean? ? ? ? ? ? 否? ? ? ? ? ?設(shè)置是否開啟 debug 模式
pages屬性說(shuō)明:
????類型是String Array(字符串?dāng)?shù)組), 每一項(xiàng)都是字符串,來(lái)指定小程序由哪些頁(yè)面組成。
????每一項(xiàng)代表對(duì)應(yīng)頁(yè)面的【路徑+文件名】信息,數(shù)組的第一項(xiàng)代表小程序的初始頁(yè)面。
????小程序中新增/減少頁(yè)面,都需要對(duì) pages 數(shù)組進(jìn)行修改。
????文件名不需要后綴,框架自動(dòng)匹配pages 數(shù)組路徑下 .json, .js, .wxml, .wxss 4文件進(jìn)行整合。????
? ??pages字符串?dāng)?shù)組的第一個(gè)字符串頁(yè)面路徑【路徑+文件名】為小程序顯示的首頁(yè)。
如開發(fā)目錄為:
????pages/
????pages/index/index.wxml
????pages/index/index.js
????pages/index/index.wxss
????pages/logs/logs.wxml
????pages/logs/logs.js
????則配如下(小程序中新增/減少頁(yè)面,都需要對(duì) pages 數(shù)組進(jìn)行修改)
????????{
????????????"pages": [
????????????????????//這里的的第一個(gè)頁(yè)面作為首頁(yè)顯示
????????????????????"pages/index/index",
????????????????????"pages/logs/logs"
????????????????]
????????????}
二:配置項(xiàng)pages
接受一個(gè)數(shù)組,每一項(xiàng)都是字符串,來(lái)指定小程序由哪些頁(yè)面組成。每一項(xiàng)代表對(duì)應(yīng)頁(yè)面的【路徑+文件名】信息,數(shù)組的第一項(xiàng)代表小程序的初始頁(yè)面。小程序中新增/減少頁(yè)面,都需要對(duì) pages 數(shù)組進(jìn)行修改。
文件名不需要寫文件后綴,因?yàn)榭蚣軙?huì)自動(dòng)去尋找路徑下?.json,?.js,?.wxml,?.wxss?四個(gè)文件進(jìn)行整合
三:配置window
????用于設(shè)置小程序的狀態(tài)欄、導(dǎo)航條、標(biāo)題、窗口背景色。
? ??屬性? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?類型? ? ? ? ? ? ?默認(rèn)值? ? ? ? ? 描述? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?最低版本
? ??navigationBarBackgroundColor? ?HexColor? ? #000000? ? 導(dǎo)航欄背景顏色,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?如"#000000"?
????navigationBarTextStyle? ? ? ? ? ? ? ? ? ? ? String? ? ? ?white? ? ? ? ? ? 導(dǎo)航欄標(biāo)題顏色,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?僅支持 black/white? ? ? ? ????navigationBarTitleText? ? ? ? ? ? ? ? ? ? ? ?String? ? ? ? ? ? ? ? ? ? ? ? ? ? ?導(dǎo)航欄標(biāo)題文字內(nèi)容
????navigationStyle? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?String? ? ? ? default? ? ? ? 導(dǎo)航欄樣式,? ? ? ? ? ? ? ?微信版本 6.6.0
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?僅支持 default/custom。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?custom 模式可自定義導(dǎo)航欄,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 只保留右上角膠囊狀的按鈕????
????backgroundColor? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? HexColor??#ffffff? ? ? ? 窗口的背景色?
????backgroundTextStyle? ? ? ? ? ? ? ? ? ? ? ? ? ?String? ? ? ? ?dark? ? ? ? ? 下拉背景字體、loading 圖的樣式,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?僅支持 dark/light
????enablePullDownRefresh? ? ? ? ? ? ? ? ? ? ? Boolean? ? ?false? ? ? ? ? 是否開啟下拉刷新,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?詳見頁(yè)面相關(guān)事件處理函數(shù)Page()

????注:
? ??????HexColor(十六進(jìn)制顏色值),如"#ff00ff"?
? ??????navigationStyle 開啟 custom 后,低版本客戶端需要做好兼容。開發(fā)者工具基礎(chǔ)庫(kù)版本切到 1.7.0(不代表最低版本,只供調(diào)試用) 可方便切到舊視覺(jué)
四:配置項(xiàng)tabBar
? ??如果小程序是一個(gè)多 tab 應(yīng)用(客戶端窗口的底部或頂部有 tab 欄可以切換頁(yè)面),
????可以通過(guò) tabBar 配置項(xiàng)指定 tab 欄的表現(xiàn),以及 tab 切換時(shí)顯示的對(duì)應(yīng)頁(yè)面
? ??????屬性? ? ? ? ? ? ? ? ? ? ? ? ? ? ?類型? ? ? ? ? ? ? ?必填? ? 默認(rèn)值? ? ? ?描述
? ??????color? ? ? ? ? ? ? ? ? ? ? ? ? ? HexColor? ? ? ?是? ? ? ? ? ? ? ? ? ? ? ? ? ?tab 上的文字默認(rèn)顏色
????????selectedColor? ? ? ? ? ? HexColor? ? ? ? 是? ? ? ? ? ? ? ? ? ? ? ? ? ?tab 上的文字選中時(shí)的顏色
????????backgroundColor? ? ?HexColor? ? ? ? 是? ? ? ? ? ? ? ? ? ? ? ? ? ?tab 的背景
????????borderStyle? ? ? ? ? ? ? ? String? ? ? ? ? ? ? 否? ? ? ?black? ? ? ? ? tabbar上邊框的顏色, 僅支持 black/white
????????list? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Array? ? ? ? ? ? ? ? 是? ? ? ? ? ? ? ? ? ? ? ? ? tab 的列表,詳見 list 屬性說(shuō)明
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?tabBar 中的 list 是一個(gè)數(shù)組,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??只能配置最少2個(gè)、最多5個(gè) tab,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? tab 按數(shù)組的順序排序。
????????position? ? ? ? ? ? ? ? ? ? ? String? ? ? ? ? ? ? ?否? ? ? ? ? ? ? ? ? ? ? ? ?bottom??可選值 bottom、top
? ??????????????????????????????????????????????????????????????????????????????????????????????????設(shè)置 position 為 top 時(shí),將不會(huì)顯示 icon
? ? list數(shù)組說(shuō)明
????????屬性類型必填說(shuō)明
????????pagePath? ? ? ? ? ? ? ? ? String? ? 是? ? ? ?頁(yè)面路徑,必須在 pages 中先定義
????????text? ? ? ? ? ? ? ? ? ? ? ? ? ? String? ? 是? ? ? ?tab 上按鈕文字
????????iconPath? ? ? ? ? ? ? ? ? ?String? ? 否? ? ? ?圖片路徑,icon 大小限制為40kb,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 建議尺寸為 81px * 81px,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 當(dāng) postion 為 top 時(shí),此參數(shù)無(wú)效,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 不支持網(wǎng)絡(luò)圖片
????????selectedIconPath? ? String? ? 否? ? ? 選中時(shí)的圖片路徑,icon 大小限制為40kb,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?建議尺寸為 81px * 81px ,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?當(dāng) postion 為 top 時(shí),此參數(shù)無(wú)效

五:配置項(xiàng)networkTimeout
? ??可以設(shè)置各種網(wǎng)絡(luò)請(qǐng)求的超時(shí)時(shí)間。
? ??????屬性? ? ? ? ? ? ? ? ? ? ?類型? ? ? ? ? 必填? ? 說(shuō)明
? ??????request? ? ? ? ? ? ? ? Number? ?否? ? ? ? ?wx.request的超時(shí)時(shí)間,單位毫秒,默認(rèn)為:60000
????????connectSocket? ?Number? ?否? ? ? ? ? wx.connectSocket的超時(shí)時(shí)間,單位毫秒,默認(rèn)為:60000
????????uploadFile? ? ? ? ? Number? ?否? ? ? ? ? wx.uploadFile的超時(shí)時(shí)間,單位毫秒,默認(rèn)為:60000
????????downloadFile? ? Number? ?否? ? ? ? ? ?wx.downloadFile的超時(shí)時(shí)間,單位毫秒,默認(rèn)為:60000
?六:配置項(xiàng)debug
? ??可以在開發(fā)者工具中開啟 debug 模式,在開發(fā)者工具的控制臺(tái)面板,調(diào)試信息以 info 的形式給出,其信息有Page的注冊(cè),頁(yè)面路由,數(shù)據(jù)更新,事件觸發(fā)?。 可以幫助開發(fā)者快速定位一些常見的問(wèn)題。
? ? ? ? ? ? ? ? ? ? ? ? ? ?第二部分:頁(yè)面配置(頁(yè)面名.json文件)
在在第二節(jié) 小程序目錄結(jié)構(gòu)中第六中描述到"頁(yè)面的json配置(頁(yè)面名稱.json)"
每一個(gè)頁(yè)面也可以使用.json文件來(lái)對(duì)本頁(yè)面的窗口表現(xiàn)進(jìn)行配置。 頁(yè)面的配置比app.json全局配置簡(jiǎn)單得多,只是設(shè)置 app.json 中的 window 配置項(xiàng)的內(nèi)容,頁(yè)面中配置項(xiàng)會(huì)覆蓋 app.json 的 window 中相同的配置項(xiàng)。
頁(yè)面的.json只能設(shè)置?window?相關(guān)配置項(xiàng),以決定本頁(yè)面窗口表現(xiàn),所以無(wú)需寫?window?這個(gè)鍵。
總結(jié):每個(gè)頁(yè)面.json(頁(yè)面配置),其實(shí)就是對(duì)app.json的window配置項(xiàng)進(jìn)行繼承覆蓋重寫
應(yīng)用:app.json中配置了啟用上下拉刷新,但某些頁(yè)面不需要,那么就可以在頁(yè)面名.json中進(jìn)行重寫禁用了。又比如每個(gè)頁(yè)的標(biāo)題,也是需要重寫的。
如:
????{
????????"navigationBarBackgroundColor":"#ffffff",
?????????"navigationBarTextStyle":"black",
? ? ? ? ?"navigationBarTitleText":"微信接口功能演示",
? ? ? ? ?"backgroundColor":"#eeeeee",
? ? ? ? ?"backgroundTextStyle":"light"
????}
所有app.json中的window配置項(xiàng)在頁(yè)面名.json中都是可以覆蓋重寫的,但頁(yè)面名.json配置又有自己的特性是app.json小程序全局配置沒(méi)有的
????屬性? ? ? ? ? ? ? ? ? ? ? 類型? ? ? ? ? ?默認(rèn)值? ? ? ? ?描述
????disableScroll? ? ? Boolean? ? ?false? ? ? ? ? ? ?設(shè)置為 true 則頁(yè)面整體不能上下滾動(dòng);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?只在 page.json 中有效,無(wú)法在 app.json 中設(shè)置該項(xiàng)