全局配置

小程序根目录下的 app.json 文件用来对QQ小程序进行全局配置,决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等。

配置示例

以下是一个包含了部分常用配置选项的 app.json

  1. {
  2. "pages": ["pages/index/index", "pages/logs/index"],
  3. "window": {
  4. "navigationBarTitleText": "Demo"
  5. },
  6. "tabBar": {
  7. "list": [
  8. {
  9. "pagePath": "pages/index/index",
  10. "text": "首页"
  11. },
  12. {
  13. "pagePath": "pages/logs/logs",
  14. "text": "日志"
  15. }
  16. ]
  17. },
  18. "networkTimeout": {
  19. "request": 10000,
  20. "downloadFile": 10000
  21. },
  22. "debug": true,
  23. "navigateToMiniProgramAppIdList": ["qqe5f52902cf4de896"],
  24. "groupIdList":["123456","34356576","457658769"]
  25. }

app.json 配置项列表

属性类型必填描述
pagesString Array页面路径列表
windowObject全局的默认窗口表现
tabBarObject底部 tab 栏的表现
networkTimeoutObject网络超时时间
debugBoolean是否开启 debug 模式,默认关闭
subpackagesObject Array分包结构配置
workersStringWorker 代码放置的目录
requiredBackgroundModesString Array需要在后台使用的能力,如「音乐播放」 preloadRule
navigateToMiniProgramAppIdListString Array需要跳转的小程序列表,详见 qq.navigateToMiniProgram
groupIdListString Array需要打开群资料卡的群号列表,详见button
permissionObject小程序接口权限相关设置

pages

用于指定小程序由哪些页面组成,每一项都对应一个页面的 路径+文件名 信息。文件名不需要写文件后缀,框架会自动去寻找对于位置的 .json, .js, .qml, .qss 四个文件进行处理。

数组的第一项代表小程序的初始页面(首页)。小程序中新增/减少页面,都需要对 pages 数组进行修改。

如开发目录为:

  1. ├── app.js
  2. ├── app.json
  3. ├── app.qss
  4. ├── pages
  5. │── index
  6. ├── index.qml
  7. ├── index.js
  8. ├── index.json
  9. └── index.qss
  10. └── logs
  11. ├── logs.qml
  12. └── logs.js
  13. └── utils

则需要在 app.json 中写

  1. {
  2. "pages": ["pages/index/index", "pages/logs/logs"]
  3. }

window

用于设置小程序的状态栏、导航条、标题、窗口背景色。

属性类型默认值描述最低版本
navigationBarBackgroundColorHexColor#000000导航栏背景颜色,如 #000000
navigationBarTextStyleStringwhite导航栏标题颜色,仅支持 black / white
navigationBarTitleTextString导航栏标题文字内容
navigationStyleStringdefault导航栏样式,仅支持以下值: default 默认样式 custom 自定义导航栏,只保留右上角胶囊按钮。参见注2。
backgroundColorHexColor#ffffff窗口的背景色
backgroundTextStyleStringdark下拉 loading 的样式,仅支持 dark / light
backgroundColorTopString#ffffff顶部窗口的背景色,仅 iOS 支持
backgroundColorBottomString#ffffff底部窗口的背景色,仅 iOS 支持
enablePullDownRefreshBooleanfalse是否开启当前页面的下拉刷新。
详见 Page.onPullDownRefresh
pageOrientationStringportrait屏幕旋转设置,支持 auto / portrait / landscape
详见 响应显示区域变化
  • 注1:HexColor(十六进制颜色值),如"#ff00ff"
  • 注2:关于navigationStyle如 app.json :
  1. {
  2. "window": {
  3. "navigationBarBackgroundColor": "#ffffff",
  4. "navigationBarTextStyle": "black",
  5. "navigationBarTitleText": "QQ接口功能演示",
  6. "backgroundColor": "#eeeeee",
  7. "backgroundTextStyle": "light"
  8. }
  9. }

tabBar

如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。

属性类型必填默认值描述最低版本
colorHexColortab 上的文字默认颜色,仅支持十六进制颜色
selectedColorHexColortab 上的文字选中时的颜色,仅支持十六进制颜色
backgroundColorHexColortab 的背景色,仅支持十六进制颜色
borderStyleStringblacktabbar上边框的颜色, 仅支持 black / white
listArraytab 的列表,详见 list 属性说明,最少2个、最多5个 tab
positionStringbottomtabBar的位置,仅支持 bottom / top
customBooleanfalse自定义 tabBar,见详情

其中 list 接受一个数组,只能配置最少 2 个、最多 5 个 tab。tab 按数组的顺序排序,每个项都是一个对象,其属性值如下:

属性类型必填说明
pagePathString页面路径,必须在 pages 中先定义
textStringtab 上按钮文字
iconPathString图片路径,icon 大小限制为40kb,建议尺寸为 81px * 81px,不支持网络图片。

postiontop 时,不显示 icon。selectedIconPath | String | 否 | 选中时的图片路径,icon 大小限制为40kb,建议尺寸为 81px 81px,不支持网络图片。*当 postiontop 时,不显示 icon。

networkTimeout

各类网络请求的超时时间,单位均为毫秒。

属性类型必填默认值说明
requestNumber60000qq.request 的超时时间,单位:毫秒。
connectSocketNumber60000qq.connectSocket 的超时时间,单位:毫秒。
uploadFileNumber60000qq.uploadFile 的超时时间,单位:毫秒。
downloadFileNumber60000qq.downloadFile 的超时时间,单位:毫秒。

debug

可以在开发者工具中开启 debug 模式,在开发者工具的控制台面板,调试信息以 info 的形式给出,其信息有Page的注册,页面路由,数据更新,事件触发等。可以帮助开发者快速定位一些常见的问题。

subpackages

启用分包加载时,声明项目分包结构。

写成 subPackages 也支持。

workers

使用 Worker 处理多线程任务时,设置 Worker 代码放置的目录

requiredBackgroundModes

申明需要后台运行的能力,类型为数组。目前支持以下项目:

  • audio: 后台音乐播放如:
  1. {
  2. "pages": ["pages/index/index"],
  3. "requiredBackgroundModes": ["audio"]
  4. }

注:在此处申明了后台运行的接口,开发版和体验版上可以直接生效,正式版还需通过审核。

preloadRule

声明分包预下载的规则。

navigateToMiniProgramAppIdList

当小程序需要使用 qq.navigateToMiniProgram 接口跳转到其他小程序时,需要先在配置文件中声明需要跳转的小程序 appId 列表,最多允许填写 10 个。

groupIdList

当小程序中使用button组件打开群资料卡时使用,需要先在配置文件中声明需要跳转的小程序 groupId 列表,最多允许填写 10 个。

permission

小程序接口权限相关设置。字段类型为 Object,结构为:

属性类型必填默认值描述
scope.userLocationPermissionObject位置相关权限声明

PermissionObject 结构

属性类型必填默认值说明
descstring小程序获取权限时展示的接口用途说明。最长30个字符

如:

  1. {
  2. "pages": ["pages/index/index"],
  3. "permission": {
  4. "scope.userLocation": {
  5. "desc": "你的位置信息将用于小程序位置接口的效果展示"
  6. }
  7. }
  8. }