全局配置
小程序根目录下的
app.json
文件用来对 TMF 小程序进行全局配置,可以通过设置来决定页面文件的路径、窗口表现、网络超时时间以及多 tab 等功能。配置示例
以下是一个包含了部分常用配置选项的
app.json
:{"pages": ["pages/index/index", "pages/logs/index"],"window": {"navigationBarTitleText": "Demo"},"tabBar": {"list": [{"pagePath": "pages/index/index","text": "首页"},{"pagePath": "pages/logs/logs","text": "日志"}]},"networkTimeout": {"request": 10000,"downloadFile": 10000},"debug": true,"navigateToMiniProgramAppIdList": ["tmfq0nbl3hxxlv2w7u"],"groupIdList":["123456","34356576","457658769"]}
app.json配置项列表
属性 | 类型 | 必填 | 描述 |
pages | String Array | 是 | 页面路径列表 |
window | Object | 否 | 全局的默认窗口表现 |
tabBar | Object | 否 | 底部 tab 栏表现 |
networkTimeout | Object | 否 | 网络超时时间 |
requiredBackgroundModes | String Array | 否 | 需要后台使用的能力,如音乐播放 |
navigateToMiniProgramAppIdList | String Array | 否 | |
permission | Object | 否 | 小程序接口权限相关设置 |
darkmode | Boolean | 否 | 获取当前手机是否为夜间模式 |
pages
用于指定小程序由哪些页面组成,每一项都对应一个页面的路径 + 文件名信息。文件名不需要写文件后缀,框架会自动去寻找对于位置的
.json
,.js
,.wxml
,.wxss
四个文件进行处理。数组的第一项代表小程序的初始页面(首页)。小程序中新增/减少页面,都需要对 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"]}
window
用于设置小程序的状态栏、导航条、标题、窗口背景色。
属性 | 类型 | 默认值 | 描述 |
navigationBarBackgroundColor | HexColor | #000000 | 导航栏背景颜色,如 #000000 |
navigationBarTextStyle | String | white | 导航栏标题颜色,仅支持 black / white |
navigationBarTitleText | String | - | 导航栏标题文字内容 |
navigationStyle | String | default | 导航栏样式,仅支持以下值: default:默认样式; custom:自定义导航栏,只保留右上角胶囊按钮; hide:自定义导航栏,可以支持隐私导航栏和胶囊按钮。 |
backgroundColor | HexColor | #ffffff | 窗口的背景色 |
backgroundTextStyle | String | dark | 下拉 loading 的样式,仅支持 dark / light |
backgroundColorTop | String | #ffffff | 顶部窗口的背景色,仅 iOS 支持 |
backgroundColorBottom | String | #ffffff | 底部窗口的背景色,仅 iOS 支持 |
enablePullDownRefresh | Boolean | false | |
customNavigateBack | Boolean | false | 是否需要拦截页面的默认返回(单击 tabBar 返回或侧滑或 back 键返回)结合Page.onCustomBack 使用 |
pageOrientation | String | portrait |
注1:HexColor(十六进制颜色值),如"#ff00ff"。
注2:关于
navigationStyle
如 app.json:
{"window": {"navigationBarBackgroundColor": "#ffffff","navigationBarTextStyle": "black","navigationBarTitleText": "TMF接口功能演示","backgroundColor": "#eeeeee","backgroundTextStyle": "light"}}
tabBar
如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。
属性 | 类型 | 必填 | 默认值 | 描述 |
color | HexColor | 是 | - | tab 上的文字默认颜色,仅支持十六进制颜色 |
selectedColor | HexColor | 是 | - | tab 上的文字选中时的颜色,仅支持十六进制颜色 |
backgroundColor | HexColor | 是 | - | tab 的背景色,仅支持十六进制颜色 |
borderStyle | String | 否 | black | tabbar上边框的颜色, 仅支持 black / white |
list | Array | 是 | - | tab 的列表,最少2个 tab、最多5个 tab |
position | String | 否 | bottom | tabBar的位置,仅支持 bottom / top |
custom | Boolean | 否 | false |
其中 list 接受一个数组,只能配置最少2个、最多5个 tab。tab 按数组的顺序排序,每个项都是一个对象,其属性值如下:
属性 | 类型 | 必填 | 说明 |
pagePath | String | 是 | 页面路径,必须在 pages 中先定义 |
text | String | 是 | tab 上按钮文字 |
iconPath | String | 否 | 图片路径,icon 大小限制为40kb,建议尺寸为 81px * 81px,不支持网络图片 |
selectedIconPath | String | 否 | 选中时的图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。当 postion 为 top 时,不显示 icon。 |
disableSlideCloseGesture
是否禁用侧滑关闭小程序的手势。默认为 false;
networkTimeout
各类网络请求的超时时间,单位均为毫秒。
属性 | 类型 | 必填 | 默认值 | 描述 |
request | Number | 否 | 60000 | |
uploadFile | Number | 否 | 60000 |
requiredBackgroundModes
申明需要后台运行的能力,类型为数组。目前支持以下项目:
audio
: 后台音乐播放。示例代码:
{"pages": ["pages/index/index"],"requiredBackgroundModes": ["audio"]}
说明:
在此处申明了后台运行的接口,开发版和体验版上可以直接生效,正式版还需通过审核。
navigateToMiniProgramAppIdList
permission
小程序接口权限相关设置。字段类型为 Object,结构为:
属性 | 类型 | 必填 | 默认值 | 描述 |
scope.userLocation | PermissionObject | 否 | - | 位置相关权限声明 |
PermissionObject 结构
属性 | 类型 | 必填 | 默认值 | 说明 |
desc | string | 是 | - | 小程序获取权限时展示的接口中文用途说明。最长80个字符 |
desc-en | string | 是 | - | 小程序获取权限时展示的接口英文用途说明。最长80个字符 |
desc-adesc-ar | string | 是 | - | 小程序获取权限时展示的接口阿语用途说明。最长80个字符 |
示例代码:
{"pages": ["pages/index/index"],"permission": {"scope.userLocation": {"desc": "你的位置信息将用于小程序位置接口的效果展示","desc-en": "where are you? do you know","desc-ar":"انا من السعودية"}}}
页面配置
每一个小程序页面也可以使用 .json 文件来对本页面的窗口表现进行配置。
页面的配置,只能设置 app.json 中部分 window 配置项的内容,页面中配置项会覆盖 app.json 的 window 中相同的配置项。
配置示例
{"navigationBarBackgroundColor": "#ffffff","navigationBarTextStyle": "black","navigationBarTitleText": "TMF接口功能演示","backgroundColor": "#eeeeee","backgroundTextStyle": "light"}
页面配置项列表
属性 | 类型 | 默认值 | 描述 |
navigationBarBackgroundColor | HexColor | #000000 | 导航栏背景颜色,如 #000000 |
navigationBarTextStyle | String | white | 导航栏标题颜色,仅支持 black / white |
navigationBarTitleText | String | - | 导航栏标题文字内容 |
navigationStyle | String | default | 导航栏样式,仅支持以下值: default:默认样式; custom:自定义导航栏,只保留右上角胶囊按钮; hide:自定义导航栏,可以支持隐私导航栏和胶囊按钮。 |
backgroundColor | HexColor | #ffffff | 窗口的背景色 |
backgroundTextStyle | String | dark | 下拉 loading 的样式,仅支持 dark / light |
backgroundColorTop | String | #ffffff | 顶部窗口的背景色,仅 iOS 支持 |
backgroundColorBottom | String | #ffffff | 底部窗口的背景色,仅 iOS 支持 |
enablePullDownRefresh | Boolean | false | |
pageOrientation | String | portrait | 屏幕旋转设置,支持 auto / portrait / landscape 详见 响应显示区域变化 |