一、全局配置
小程序根目录下的 app.json 文件用来对微信小程序进行全局配置。文件内容为一个 JSON 对象。
entryPagePath---指定小程序的默认启动路径(首页)
如果不填,将默认为 pages 列表的第一项。不支持带页面路径参数。
{ "entryPagePath": "pages/index/index"}
2. pages---页面路径列表,必填
指定小程序由哪些页面组成,每一项都对应一个页面的路径。文件名不需要写文件后缀,框架会自动去寻找对应位置的 .json, .js, .wxml, .wxss 四个文件进行处理。
未指定 entryPagePath 时,数组的第一项代表小程序的初始页面(首页)。
小程序中新增/减少页面,都需要对 pages 数组进行修改。
如开发目录为:
├── app.js
├── app.json
├── app.wxss
├── pages
│ │── index
│ │ ├── index.wxml
│ │ ├── index.js
│ │ ├── index.json
│ │ └── index.wxss
│ └── logs
│ ├── logs.wxml
│ └── logs.js
└── utils
则需要在 app.json 中写
{ "pages": ["pages/index/index", "pages/logs/logs"]}
3.window---全局的默认窗口表现
用于设置小程序的状态栏、导航条、标题、窗口背景色。
navigationBarBackgroundColor ---导航栏背景颜色,#000000
navigationBarTextStyle ------------导航栏标题颜色,仅支持 black
/ white
navigationBarTitleText--------------导航栏标题文字内容
navigationStyle----------------------导航栏样式,仅支持以下值: default
默认样式 custom
自定义导航栏,只保留右上角胶囊按钮。
backgroundColor----------------窗口的背景色
backgroundTextStyle-------------下拉 loading 的样式,仅支持 dark
/ light
enablePullDownRefresh----------是否开启全局的下拉刷新,true/false
如:
{ "window": { "navigationBarBackgroundColor": "#ffffff", "navigationBarTextStyle": "black", "navigationBarTitleText": "微信接口功能演示", "backgroundColor": "#eeeeee", "backgroundTextStyle": "light" }}
4.tabBar----底部 tab 栏的表现
如果小程序是一个多 tab 应用,可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。
color----------tab 上的文字默认颜色,仅支持十六进制颜色
selectedColor---tab 上的文字选中时的颜色
backgroundColor---tab 的背景色
borderStyle------tabbar 上边框的颜色, 仅支持 black / white
list------------tab 的列表
position--------tabBar 的位置,仅支持 bottom / top
其中 list 接受一个数组,只能配置最少 2 个、最多 5 个 tab。tab 按数组的顺序排序,每个项都是一个对象,其属性值如下:
pagePath-----页面路径,必须在 pages 中先定义
text-------------tab 上按钮文字
iconPath--------图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。当 position 为 top 时,不显示 icon。
selectedIconPath--------选中时的图片路径
5、debug-------开启 debug
模式
在开发者工具中开启 debug 模式,在开发者工具的控制台面板,调试信息以 info 的形式给出,其信息有 Page 的注册,页面路由,数据更新,事件触发等。可以帮助开发者快速定位一些常见的问题。
boolean:true/false
6、functionalPages----是否启用插件功能页
默认关闭,Boolean:true/false
7、requiredBackgroundModes----需要后台运行的能力
类型为数组。目前支持以下项目:
audio
: 后台音乐播放location
: 后台定位
{ "pages": ["pages/index/index"], "requiredBackgroundModes": ["audio", "location"]}
8、plugins----声明小程序使用的插件
9、sitemapLocation----指明 sitemap.json 的位置,必填
默认为 app.json 同级目录下名字的 sitemap.json 文件
10、permission-----小程序接口权限相关设置
参数:desc 必填 小程序获取权限时展示的接口用途说明。最长 30 个字符
如:
{ "pages": ["pages/index/index"], "permission": { "scope.userLocation": { "desc": "你的位置信息将用于小程序位置接口的效果展示" // 高速公路行驶持续后台定位 } }}
11、style----启用新版的组件样式
微信客户端 7.0 开始,UI 界面进行了大改版。小程序也进行了基础组件的样式升级。app.json 中配置 "style": "v2"可表明启用新版的组件样式。
12、useExtendedLib-----指定需要引用的扩展库
目前支持以下项目:
kbone
: 多端开发框架weui
: WeUI 组件库
{ "useExtendedLib": { "kbone": true, "weui": true }}
13、lazyCodeLoading----代码文件懒加载
通常情况下,在小程序启动期间,所有页面及自定义组件的代码都会进行注入,
自基础库版本 2.11.1 起,小程序支持有选择地注入必要的代码,以降低小程序的启动时间和运行时内存。
{ "lazyCodeLoading": "requiredComponents"}
当配置了这一项时,小程序仅注入当前页面需要的自定义组件和页面代码。
二、页面配置
每一个小程序页面也可以使用 .json 文件来对本页面的窗口表现进行配置。页面中配置项在当前页面会覆盖 app.json 的 window 中相同的配置项。
参数大部分与全局配置使用一致。
disableScroll
设置为 true 则页面整体不能上下滚动。
只在页面配置中有效,无法在 app.json 中设置
三、sitemap 配置
微信现已开放小程序内搜索,当开发者允许微信索引时,微信会通过爬虫的形式,为小程序的页面内容建立索引。当用户的搜索词条触发该索引时,小程序的页面将可能展示在搜索结果中。
小程序根目录下的 sitemap.json 文件用于配置小程序及其页面是否允许被微信索引,文件内容为一个 JSON 对象,如果没有 sitemap.json ,则默认为所有页面都允许被索引。
配置项
rules 配置项指定了索引规则,每一项规则有如下属性:
action----命中该规则的页面是否能被索引,默认值为allow,取值allow/disallow
page----必填项,取值"*"或 页面的路径,* 表示所有页面,不能作为通配符使用
params----当 page 字段指定的页面在被本规则匹配时可能使用的页面参数名称的列表(不含参数值)
priority----优先级,值越大则规则越早被匹配,未配置或值相同默认从上到下匹配