程序框架全局配置说明

网友投稿 296 2024-07-02

全局配置

小程序根目录下的app.json文件用来对小程序进行全局配置。文件内容为一个 JSON 对象。

小程序框架全局配置说明

扩展功能

可以创建一个app.ext.json文件。 该文件会和app.json合并,优先使用app.ext.json中的配置(页面、组件同理)

#1. 配置项

属性类型必填描述最低版本
entryPagePathstring小程序默认启动首页
pagesstring[]页面路径列表
windowObject全局的默认窗口表现
tabBarObject底部 tab 栏的表现
debugboolean是否开启 debug 模式,默认关闭
subpackagesObject[]分包结构配置2.10.1
pluginsObject使用到的插件2.11.1
preloadRuleObject分包预-规则2.11.1
resizablebooleanPC 小程序是否支持用户任意改变窗口大小(包括最大化窗口);iPad 小程序是否支持屏幕旋转。默认关闭2.3.0
usingComponentsObject全局自定义组件配置
stylestring指定使用升级后的weui样式2.11.1
useExtendedLibObject指定需要引用的扩展库2.12.2
darkmodeboolean小程序支持 DarkMode2.11.8
themeLocationstring指明 theme.json 的位置,darkmode为true为必填2.11.8
networkTimeoutObject网络超时时间
requiredBackgroundModesObject需要在后台使用的能力,如「音乐播放」
refererstring配置后,部分小程序内的组件或 API,发起 http 资源请求时会携带上该 referer 的值,拼接规则为 {referer}/{appid}/{version}/view.html

请注意

以下配置项暂不支持

名称功能说明
entranceDeclare微信消息用小程序打开
functionalPages是否启用插件功能页,默认关闭
permission小程序接口权限相关设置
sitemapLocation指明 sitemap.json 的位置
workersWorker 代码放置的目录
lazyCodeLoading配置自定义组件代码按需注入
singlePage单页模式相关配置
supportedMaterials聊天素材小程序打开相关配置
serviceProviderTicket定制化型服务商票据
embeddedAppIdList半屏小程序 appId
halfPage视频号直播半屏场景设置

#entryPagePath

指定小程序的默认启动路径(首页),如果不填,将默认为 pages 列表的第一项。不支持带页面路径参数。

#pages

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

未指定 entryPagePath 时,数组的第一项代表小程序的初始页面(首页)。

小程序中新增/减少页面,都需要对 pages 数组进行修改。

如开发目录为:

├── app.js
├── app.json
├── app.ftss
├── pages
│   │── index
│   │   ├── index.fxml
│   │   ├── index.js
│   │   ├── index.json
│   │   └── index.ftss
│   └── logs
│       ├── logs.fxml
│       └── logs.js
└── utils
        已复制代码

则需要在 app.json 中写

{
  "pages": ["pages/index/index", "pages/logs/logs"]}
        已复制代码

#window

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

属性类型默认值描述最低版本
navigationBarBackgroundColorHexColor#000000导航栏背景颜色,如 #000000
navigationBarTextStylestringwhite导航栏标题颜色,仅支持 black / white
navigationBarTitleTextstring
导航栏标题文字内容
navigationStylestringdefault导航栏样式,仅支持以下值:1. default(默认样式), 2. custom(自定义导航栏,只保留右上角胶囊按钮,对 web-view 组件无效), 3.customV2(自定义导航栏,只保留右上角胶囊按钮), 4.hide(隐藏导航栏和右上角胶囊按钮)
navigationBarHideCloseButtonBooleanfalse隐藏胶囊关闭按钮
navigationBarHideMoreButtonBooleanfalse隐藏胶囊菜单按钮
backgroundColorHexColor#ffffff窗口的背景色
backgroundTextStylestringdark下拉 loading 的样式,仅支持 dark / light
backgroundColorTopstring#ffffff顶部窗口的背景色,仅 iOS 支持
backgroundColorBottomstring#ffffff底部窗口的背景色,仅 iOS 支持
enablePullDownRefreshbooleanfalse是否开启全局的下拉刷新。详见 Page.onPullDownRefresh
pageOrientationstringportrait屏幕旋转设置,支持 auto / portrait / landscape 详见 响应显示区域变化2.4.0 (auto) / 2.5.0 (landscape)
initialRenderingCachestring
页面初始渲染缓存配置,支持 static / dynamic2.10.1
onReachBottomDistance页面上拉触底事件触发时距页面底部距离,单位为 px。详见 Page.onReachBottom2.12.8

请注意

以下配置项暂不支持

名称功能说明
restartStrategy重新启动策略配置
visualEffectInBackground切入系统后台时,隐藏页面内容,保护用户隐私。支持 hidden / none

#tabBar

tabBar 用来配置小程序底部或者顶部的 tab 导航栏的样式以及跳转的页面等。

详细配置项如下:

属性类型必填默认值描述
colorHexColor
tab 上的文字默认颜色
selectedColorHexColor
tab 上的文字选中时的颜色
backgroundColorHexColor
tab 的背景色
borderStyleStringblacktabbar上边框的颜色, 仅支持 black、white
listArray
tab 的列表,详见list 属性说明,支持2-5个tab选项
positionStringbottomtabBar的位置,仅支持两个值: bottom、top

其中 list 是数组类型,只能配置最少2个、最多5个 tab。

tab 按数组的顺序排序,每个项都是一个独立的对象,其可配置值如下:

属性类型必填说明
pagePathString页面路径,必须在 pages 数组中先定义
textStringtab 上按钮文字
iconPathString图片路径,icon 大小限制为40kb,建议尺寸为 81px * 81px,不支持网络图片。当 postion 为 top 时,不显示 icon。
selectedIconPathString选中时的图片路径,要求同 iconPath

#networkTimeout

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

属性类型必填默认值说明
requestnumber60000wx.request 的超时时间,单位:毫秒。
connectSocketnumber60000wx.connectSocket 的超时时间,单位:毫秒。
uploadFilenumber60000wx.uploadFile 的超时时间,单位:毫秒。
downloadFilenumber60000wx.downloadFile 的超时时间,单位:毫秒。

#debug

布尔类型,当配置为true时,扫码后,小程序中会增加一个信息查看按钮 vconsole,方便开发者查看日志(已废弃)

可以通过:

1、通过调用小程序api(ft.setEnableDebug)来开启Debug模式。

2、非线上版本(比如体验版、审核版、开发版、预览版)可在 更多菜单中通过【打开调试】开启Debug模式。

#subpackages

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

#plugins

声明小程序需要使用的插件。

#preloadRule

声明分包预-的规则。

#resizable

在 iPad 上运行的小程序可以设置支持屏幕旋转。

在 PC 上运行的小程序,用户可以按照任意比例拖动窗口大小,也可以在小程序菜单中最大化窗口

#usingComponents

app.json中声明的自定义组件视为全局自定义组件,在小程序内的页面或自定义组件中可以直接使用而无需再声明。

注意:全局声明的自定义组件会视为被所有页面依赖,会在所有页面启动时进行初始化,且会占用主包大小。只被个别页面或分包引用的自定义组件应尽量在页面配置中声明。

#style

由于微信客户端 7.0 开始,UI 界面进行了大改版。小程序也进行了基础组件的样式升级。app.json 中配置 "style": "v2"可表明启用兼容微信新版的组件样式。

本次改动涉及的组件有

  • button

  • icon

  • radio

  • checkbox

  • switch

  • slider

#useExtendedLib

指定需要引用的扩展库。目前支持以下项目:

指定后,相当于引入了对应扩展库相关的最新版本的 npm 包,同时也不占用小程序的包体积。用法如下:

{
  "useExtendedLib": {
    "kbone": true,
    "weui": true
  }
}
        已复制代码

#darkmode

SDK 2.35.1 版本正式支持 DarkMode,可通过配置"darkmode": true表示当前小程序可适配 DarkMode,所有基础组件均会根据系统主题展示不同的默认样式,navigation bar 和 tab bar 也会根据开发者的配置自动切换。

配置后,自行完成基础样式以外的适配工作。

目前 android 是通过反色实现的,在使用前请做好测试。

具体表现为:暗黑模式下基础库部分组件样式与ios不一致,WXSS无法使用prefers-color-scheme,其余功能正常。

#themeLocation

自定义theme.json的路径,当配置"darkmode":true时,当前配置文件为必填项。

#referer

若有配置 referer

组件 video、image 以及 API request、download & uploadFile、loadFontFace、previewImage、previewMedia、getImageInfo 会在请求 http 资源时携带上配置的 referer

#2. 配置示例

{
  "pages": ["pages/index/index", "pages/logs/index"],
  "window": {
    "navigationBarTitleText": "Demo"
  },
  "tabBar": {
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页"
      },
      {
        "pagePath": "pages/logs/logs",
        "text": "日志"
      }
    ]
  },
  "debug": true,}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:小程序框架项目配置文件说明
下一篇:小程序框架页面配置说明及示例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~