目录
- 全局配置
- entryPagePath
- pages
- window
- tabBar
- list
- plugins
- resizable
- permission
- PermissionObject 结构
- style
- 页面配置
全局配置
entryPagePath
指定小程序的默认启动路径(首页),常见情景是从微信聊天列表页下拉启动、小程序列表启动等。如果不填,将默认为 pages 列表的第一项。不支持带页面路径参数。
{
"entryPagePath": "pages/index/index"
}
pages
用于指定小程序由哪些页面组成,每一项都对应一个页面的 路径(含文件名) 信息。文件名不需要写文件后缀,框架会自动去寻找对应位置的 .json, .js, .wxml, .wxss 四个文件进行处理。未指定 entryPagePath 时,数组的第一项代表小程序的初始页面(首页)。小程序中新增/减少页面,都需要对 pages 数组进行修改。
{
"pages": ["pages/index/index", "pages/logs/logs"]
}
window
用于设置小程序的状态栏、导航条、标题、窗口背景色。
属性 | 属性值 |
navigationBarBackgroundColor | 导航栏背景颜色,必须是十六进制颜色值,如 #000000 |
navigationBarTextStyle | 导航栏标题颜色,仅支持 black / white |
navigationBarTitleText | 导航栏标题文字内容 |
navigationStyle | 导航栏样式,仅支持以下值:default 默认样式、custom 自定义导航栏,只保留右上角胶囊按钮。 |
backgroundColor | 窗口的背景色 |
backgroundTextStyle | 下拉 loading 的样式,仅支持 dark / light |
enablePullDownRefresh | 是否开启全局的下拉刷新,默认为false |
onReachBottomDistance | 页面上拉触底事件触发时距页面底部距离,单位为 px,默认为50 |
restartStrategy | 重新启动策略配置,homePage (默认值)如果从这个页面退出小程序,下次将从首页冷启动;homePageAndLatestPage 如果从这个页面退出小程序,下次冷启动后立刻加载这个页面,页面的参数保持不变(不可用于 tab 页) |
visualEffectInBackground | 切入系统后台时,隐藏页面内容,保护用户隐私。支持 hidden / none |
initialRenderingCache | 页面初始渲染缓存配置,支持 static / dynamic |
handleWebviewPreload | 控制预加载下个页面的时机。支持 static / manual / auto |
pageOrientation | 屏幕旋转设置,支持 auto / portrait / landscape |
tabBar
如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。
属性 | 说明 |
color | tab 上的文字默认颜色,仅支持十六进制颜色 |
selectedColor | tab 上的文字选中时的颜色,仅支持十六进制颜色 |
backgroundColor | tab 的背景色,仅支持十六进制颜色 |
borderStyle | tabbar 上边框的颜色, 仅支持 black / white |
list | tab 的列表,详见 list 属性说明,最少 2 个、最多 5 个 tab |
position | tabBar 的位置,仅支持 bottom / top |
custom | 自定义 tabBar,见详情 |
list
其中 list 接受一个数组,只能配置最少 2 个、最多 5 个 tab。tab 按数组的顺序排序,每个项都是一个对象,其属性值如下:
属性 | 属性值 |
pagePath | 页面路径,必须在 pages 中先定义 |
text | tab 上按钮文字 |
iconPath | 图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。当 position 为 top 时,不显示 icon。 |
selectedIconPath | 选中时的图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。当 position 为 top 时,不显示 icon |
plugins
声明小程序需要使用的插件。
resizable
在 iPad 上运行的小程序可以设置支持屏幕旋转。
在 PC 上运行的小程序,用户可以按照任意比例拖动窗口大小,也可以在小程序菜单中最大化窗口
permission
小程序接口权限相关设置。字段类型为 Object,结构为:
属性 | 说明 |
scope.userLocation | PermissionObject 结构,位置相关权限声明 |
PermissionObject 结构
属性 | 说明 |
desc | 小程序获取权限时展示的接口用途说明。最长 30 个字符 |
{
"pages": ["pages/index/index"],
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示"
}
}
}
style
微信客户端 7.0 开始,UI 界面进行了大改版。小程序也进行了基础组件的样式升级。app.json 中配置 “style”: "v2"可表明启用新版的组件样式。
页面配置
app.json 中的部分配置,也支持对单个页面进行配置,可以在页面对应的 .json 文件来对本页面的表现进行配置。
页面中配置项在当前页面会覆盖 app.json 中相同的配置项(样式相关的配置项属于 app.json 中的 window 属性,但这里不需要额外指定 window 字段)。如果全局配置和页面配置都配置了同一属性,页面配置会覆盖全局配置。
{
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "微信接口功能演示",
"backgroundColor": "#eeeeee",
"backgroundTextStyle": "light"
}