app.json文件用來對(duì)微信小程序進(jìn)行全局配置,決定頁面文件的路徑纤怒、窗口表現(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)行全局配置泊窘,決定頁面文件的路徑熄驼、窗口表現(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è)置頁面路徑
? ??window? ? ? ? ? ? ? ? ? ? ?Object? ? ? ? ? ? ? ?否? ? ? ? ? ?設(shè)置默認(rèn)頁面的窗口表現(xiàn)
? ??tabBar? ? ? ? ? ? ? ? ? ? ? ?Object? ? ? ? ? ? ? ?否? ? ? ? ? ?設(shè)置底部 tab 的表現(xiàn)
? ??networkTimeout? ? ?Object? ? ? ? ? ? ? ?否? ? ? ? ? ?設(shè)置網(wǎng)絡(luò)超時(shí)時(shí)間
? ??debug? ? ? ? ? ? ? ? ? ? ? ? Boolean? ? ? ? ? ? 否? ? ? ? ? ?設(shè)置是否開啟 debug 模式
pages屬性說明:
????類型是String Array(字符串?dāng)?shù)組)憔鬼, 每一項(xiàng)都是字符串龟劲,來指定小程序由哪些頁面組成。
????每一項(xiàng)代表對(duì)應(yīng)頁面的【路徑+文件名】信息轴或,數(shù)組的第一項(xiàng)代表小程序的初始頁面昌跌。
????小程序中新增/減少頁面,都需要對(duì) pages 數(shù)組進(jìn)行修改照雁。
????文件名不需要后綴避矢,框架自動(dòng)匹配pages 數(shù)組路徑下 .json, .js, .wxml, .wxss 4文件進(jìn)行整合。????
? ??pages字符串?dāng)?shù)組的第一個(gè)字符串頁面路徑【路徑+文件名】為小程序顯示的首頁。
如開發(fā)目錄為:
????pages/
????pages/index/index.wxml
????pages/index/index.js
????pages/index/index.wxss
????pages/logs/logs.wxml
????pages/logs/logs.js
????則配如下(小程序中新增/減少頁面审胸,都需要對(duì) pages 數(shù)組進(jìn)行修改)
????????{
????????????"pages": [
????????????????????//這里的的第一個(gè)頁面作為首頁顯示
????????????????????"pages/index/index",
????????????????????"pages/logs/logs"
????????????????]
????????????}
二:配置項(xiàng)pages
接受一個(gè)數(shù)組亥宿,每一項(xiàng)都是字符串,來指定小程序由哪些頁面組成砂沛。每一項(xiàng)代表對(duì)應(yīng)頁面的【路徑+文件名】信息烫扼,數(shù)組的第一項(xiàng)代表小程序的初始頁面。小程序中新增/減少頁面碍庵,都需要對(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? ? ? ? ? 是否開啟下拉刷新,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?詳見頁面相關(guān)事件處理函數(shù)Page()
????注:
? ??????HexColor(十六進(jìn)制顏色值)漓骚,如"#ff00ff"?
? ??????navigationStyle 開啟 custom 后蝌衔,低版本客戶端需要做好兼容。開發(fā)者工具基礎(chǔ)庫版本切到 1.7.0(不代表最低版本蝌蹂,只供調(diào)試用) 可方便切到舊視覺
四:配置項(xiàng)tabBar
? ??如果小程序是一個(gè)多 tab 應(yīng)用(客戶端窗口的底部或頂部有 tab 欄可以切換頁面)噩斟,
????可以通過 tabBar 配置項(xiàng)指定 tab 欄的表現(xiàn),以及 tab 切換時(shí)顯示的對(duì)應(yīng)頁面
? ??????屬性? ? ? ? ? ? ? ? ? ? ? ? ? ? ?類型? ? ? ? ? ? ? ?必填? ? 默認(rèn)值? ? ? ?描述
? ??????color? ? ? ? ? ? ? ? ? ? ? ? ? ? HexColor? ? ? ?是? ? ? ? ? ? ? ? ? ? ? ? ? ?tab 上的文字默認(rèn)顏色
????????selectedColor? ? ? ? ? ? HexColor? ? ? ? 是? ? ? ? ? ? ? ? ? ? ? ? ? ?tab 上的文字選中時(shí)的顏色
????????backgroundColor? ? ?HexColor? ? ? ? 是? ? ? ? ? ? ? ? ? ? ? ? ? ?tab 的背景
????????borderStyle? ? ? ? ? ? ? ? String? ? ? ? ? ? ? 否? ? ? ?black? ? ? ? ? tabbar上邊框的顏色叉信, 僅支持 black/white
????????list? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Array? ? ? ? ? ? ? ? 是? ? ? ? ? ? ? ? ? ? ? ? ? tab 的列表亩冬,詳見 list 屬性說明
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?tabBar 中的 list 是一個(gè)數(shù)組艘希,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??只能配置最少2個(gè)硼身、最多5個(gè) tab,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? tab 按數(shù)組的順序排序覆享。
????????position? ? ? ? ? ? ? ? ? ? ? String? ? ? ? ? ? ? ?否? ? ? ? ? ? ? ? ? ? ? ? ?bottom??可選值 bottom佳遂、top
? ??????????????????????????????????????????????????????????????????????????????????????????????????設(shè)置 position 為 top 時(shí),將不會(huì)顯示 icon
? ? list數(shù)組說明
????????屬性類型必填說明
????????pagePath? ? ? ? ? ? ? ? ? String? ? 是? ? ? ?頁面路徑撒顿,必須在 pages 中先定義
????????text? ? ? ? ? ? ? ? ? ? ? ? ? ? String? ? 是? ? ? ?tab 上按鈕文字
????????iconPath? ? ? ? ? ? ? ? ? ?String? ? 否? ? ? ?圖片路徑丑罪,icon 大小限制為40kb,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 建議尺寸為 81px * 81px,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 當(dāng) postion 為 top 時(shí)吩屹,此參數(shù)無效跪另,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 不支持網(wǎng)絡(luò)圖片
????????selectedIconPath? ? String? ? 否? ? ? 選中時(shí)的圖片路徑,icon 大小限制為40kb煤搜,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?建議尺寸為 81px * 81px 免绿,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?當(dāng) postion 為 top 時(shí),此參數(shù)無效
五:配置項(xiàng)networkTimeout
? ??可以設(shè)置各種網(wǎng)絡(luò)請(qǐng)求的超時(shí)時(shí)間擦盾。
? ??????屬性? ? ? ? ? ? ? ? ? ? ?類型? ? ? ? ? 必填? ? 說明
? ??????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的注冊筒饰,頁面路由,數(shù)據(jù)更新瓷们,事件觸發(fā)?业栅。 可以幫助開發(fā)者快速定位一些常見的問題谬晕。
? ? ? ? ? ? ? ? ? ? ? ? ? ?第二部分:頁面配置(頁面名.json文件)
在在第二節(jié) 小程序目錄結(jié)構(gòu)中第六中描述到"頁面的json配置(頁面名稱.json)"
每一個(gè)頁面也可以使用.json文件來對(duì)本頁面的窗口表現(xiàn)進(jìn)行配置攒钳。 頁面的配置比app.json全局配置簡單得多不撑,只是設(shè)置 app.json 中的 window 配置項(xiàng)的內(nèi)容焕檬,頁面中配置項(xiàng)會(huì)覆蓋 app.json 的 window 中相同的配置項(xiàng)维苔。
頁面的.json只能設(shè)置?window?相關(guān)配置項(xiàng)蕉鸳,以決定本頁面窗口表現(xiàn),所以無需寫?window?這個(gè)鍵忍法。
總結(jié):每個(gè)頁面.json(頁面配置)潮尝,其實(shí)就是對(duì)app.json的window配置項(xiàng)進(jìn)行繼承覆蓋重寫
應(yīng)用:app.json中配置了啟用上下拉刷新,但某些頁面不需要饿序,那么就可以在頁面名.json中進(jìn)行重寫禁用了勉失。又比如每個(gè)頁的標(biāo)題,也是需要重寫的原探。
如:
????{
????????"navigationBarBackgroundColor":"#ffffff",
?????????"navigationBarTextStyle":"black",
? ? ? ? ?"navigationBarTitleText":"微信接口功能演示",
? ? ? ? ?"backgroundColor":"#eeeeee",
? ? ? ? ?"backgroundTextStyle":"light"
????}
所有app.json中的window配置項(xiàng)在頁面名.json中都是可以覆蓋重寫的乱凿,但頁面名.json配置又有自己的特性是app.json小程序全局配置沒有的
????屬性? ? ? ? ? ? ? ? ? ? ? 類型? ? ? ? ? ?默認(rèn)值? ? ? ? ?描述
????disableScroll? ? ? Boolean? ? ?false? ? ? ? ? ? ?設(shè)置為 true 則頁面整體不能上下滾動(dòng);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?只在 page.json 中有效咽弦,無法在 app.json 中設(shè)置該項(xiàng)