更新时间:2024-08-12 15:32:42收藏订阅更新我的文档设置返回文档 观看本节视频讲解 app.json 用于对小程序进行全局配置,设置页面文件的路径、窗口表现、多 tab、分包、插件等。以下是一个基本配置示例:json复制代码9123456{ "pages": ["pages/index/index", "pages/logs/logs"], "window": { "defaulttitle": "demo" }}完整配置项如下:属性类型必填描述entrypagepathstring否小程序默认启动凯发k8官方网娱乐官方首页。pagesarray是设置页面路径。windowobject否设置默认页面的窗口表现。tabbarobject否设置底部 tabbar 的表现。subpackagesobject[]否分包结构描述。preloadruleobject否分包预加载规则。pluginsobject否静态插件配置规则。usedynamicpluginsboolean否动态插件配置规则。usingcomponentsobject否设置全局自定义组件声明。lazycodeloadingstring否是否开启代码按需执行。permissionobject否小程序接口权限相关配置。behaviorobject否修改小程序运行行为的相关设置。workersarray否设置 worker 代码文件列表。loadingpagesobject否设置骨架屏。requirepolyfillboolean否要求基础库注入 polyfill。entrypagepath指定小程序的默认启动路径(凯发k8官方网娱乐官方首页)。如果不填,将默认为 pages 列表的第一项。不支持带页面路径参数。注意:此特性从基础库 2.7.20,ide 3.1.2 开始支持。若强依赖此特性,建议设置最低基础库版本号为 2.7.20。否则,在低版本的基础库,会因为无法识别正确的凯发k8官方网娱乐官方首页而导致渲染出 返回凯发k8官方网娱乐官方首页 图标。pagesapp.json 中的 pages 为数组属性,数组中每一项都是字符串,用于指定小程序的页面。在小程序中新增或删除页面,都需要对 pages 数组进行修改。pages 数组的每一项代表对应页面的路径信息,其中,第一项代表小程序的凯发k8官方网娱乐官方首页。页面路径不需要写任何后缀,框架会自动去加载同名的 .json、.js、.axml、.acss 文件。举例来说,如果开发目录为:app.json 中应当如下配置:usingcomponents在 app.json 中声明的自定义组件将会认为成全局自定义组件,在小程序各页面或自定义组件中可以直接使用无需额外声明。注意:ide3.1.2 及以上开始支持。该功能声明的组件将要被所有页面和组件依赖,可能会影响性能,且会占用主包大小,建议开启 app.lazycodeloading。windowwindow 用于设置小程序的状态栏、导航条、标题、窗口背景色等。示例代码:属性类型必填描述最低版本allowsbounceverticalstring否是否允许向下拉拽。默认 yes, 支持 yes / no-backgroundcolorhexcolor否窗口的背景色。例:白色 "#ffffff"。-backgroundimagecolorhexcolor否下拉露出显示背景图的底色。例:白色 "#ffffff"。仅安卓下有效,ios 下页面背景图底色会使用 backgroundcolor 的值-backgroundimageurlstring否下拉露出显示背景图的链接。-defaulttitlestring否页面默认标题。-enablescrollbarstring否仅支持 android,是否显示 webview 滚动条。默认 yes,支持 yes / no。-gesturebackstring否仅支持 ios,是否支持手势返回。默认 yes,支持 yes / no。-onreachbottomdistancenumber否页面上拉触底时触发时距离页面底部的距离,单位为 px,详情可查看 页面事件处理函数。1.19.0 ,目前ios在page.json下设置无效,只能全局设置。pullrefreshboolean否是否允许下拉刷新,默认 false。 说明: 1.下拉刷新生效的前提是 allowsbouncevertical 值为 yes。 2.window 全局配置后全局生效,但是如果单个页面配置了该参数,以页面的配置为准。-responsiveboolean否rpx 单位是否宽度自适应 ,默认 true,当设置为 false 时,2 rpx 将恒等于 1 px,不再根据屏幕宽度进行自适应,注意,此时 750 rpx 将不再等于 100% 宽度。1.23.0showtitleloadingstring否是否进入时显示导航栏的 loading。默认 no,支持 yes / no。-transparenttitlestring否导航栏透明设置。默认 none,支持 always 一直透明 / auto 滑动自适应 / none 不透明。-titlepenetratestring否是否允许导航栏点击穿透。默认 no,支持 yes / no。-titleimagestring否导航栏图片地址。-titlebarcolorhexcolor否导航栏背景色。例:白色 "#ffffff"。-navigationbarfrontcolorstring否导航栏前景色。只支持配置 black 或者 white。支付宝客户端 10.5.30tabbar如果开发的小程序是一个多 tab 应用(客户端窗口的底部栏可以切换页面),那么可以通过 tabbar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。 tabbar 与 pages、 window 配置同级,配置项如下:属性类型必填描述textcolorhexcolor否文字颜色。selectedcolorhexcolor否选中文字颜色。backgroundcolorhexcolor否背景色。itemsarray是每个 tab 配置。每个 item 配置:属性类型必填描述pagepathstring是设置页面路径。namestring是名称。iconstring否平常图标路径(非选中状态)。activeiconstring否高亮图标路径(选中状态)。icon 图标推荐大小为 81px * 81px,系统会对传入的非推荐尺寸的图片进行非等比拉伸或缩放。带有 tabbar 的 app.json 示例如下:代码中,开发者可通过 my.settabbaritem 动态设置 tabbar 中指定 item 的内容。networktimeout各类网络请求的超时时间,单位均为毫秒。属性类型必填默认值说明requestnumber否30000my.request 的超时时间,单位:毫秒。connectsocketnumber否30000my.connectsocket 的超时时间,单位:毫秒。uploadfilenumber否60000my.uploadfile 的超时时间,单位:毫秒。downloadfilenumber否60000my.downloadfile 的超时时间,单位:毫秒。subpackages启用 分包加载 时,声明项目分包结构。preloadrule声明 分包预下载 的规则。plugins基础库 1.22.4 及以上,支付宝客户端 10.1.85 及以上开始支持。声明小程序需要使用的 静态插件。usedynamicplugins基础库 1.22.4 及以上,支付宝客户端 10.1.85 及以上开始支持。声明小程序需要使用 动态插件。lazycodeloading小程序应用的启动过程中,除了下载阶段以外,默认会执行所有代码(包括当前页面未使用到的所有页面、自定义组件),会对启动耗时有一定影响。基础库 2.7.0 及以上 ,支持配置以下 lazycodeloading 参数,仅执行当前页面所必须的页面脚本和自定义组件脚本,其他脚本则不会被执行。可选项:requiredcomponents:按需加载页面。renderedcomponents:按需加载页面和组件。注意:由于开启该配置后,当前页面未使用到的代码将不会被执行,可能对某些依赖默认脚本执行先后顺序的逻辑产生影响。说明:基础库 2.9.39 支持配置 renderedcomponents 来开启自定义组件懒加载,即自定义组件真正需要使用的时候才进行注册。●该功能要求 ide 3.9.6 以上。●设置 renderedcomponents,将兼容原有 requiredcomponents 功能。●支持多级别设置:○app.json 设置:宿主应用中所有页面的自定义组件开启懒加载。○page.json 设置:宿主单页面的自定义组件开启懒加载。○component.json 设置:单个自定义组件开启懒加载。○plugin.json 设置:插件下所有页面及公共自定义组件开启懒加载。●注意:与原有行为相比,自定义组件的注册时机发生改变,接入时需进行 测试回归。workers使用 worker 处理多线程任务时,设置 worker 代码文件列表。如:permission小程序接口权限相关设置。字段类型为 object,结构为:属性类型必填描述scope.albumpermissionobject否相册(访问)相关权限声明,相关 api:my.chooseimage、my.choosevideo(sourcetype 包含 album)。scope.writephotosalbumpermissionobject否相册(保存)相关权限声明,相关 api:my.saveimage、my.saveimagetophotosalbum、my.savevideotophotosalbum。scope.camerapermissionobject否相机相关权限声明,相关 api:my.chooseimage、my.choosevideo(sourcetype 包含 camera)。scope.recordpermissionobject否麦克风相关权限声明,相关 api:my.getrecordermanager。scope.userlocationpermissionobject否位置相关权限声明,相关 api:my.getlocation。permissionobject 结构属性类型必填描述descstring是小程序获取权限时展示的接口用途说明。使用示例behavior用于改变小程序若干运行行为。字段类型为 object,结构请见下方说明。属性类型必填描述shareappmessagestring否可选值:appendquery。 使用小程序默认分享功能时(即不显式设置 page.onshareappmessage),当设置此字段后,会使客户端生成的用于分享的 scheme 带上当前用户打开的页面所携带的 query 参数。 基础库 2.7.10 及以上开始支持,同时需使用 ide 2.7.0 及以上版本进行构建。decodequerystring否可选值:disable。 小程序在解析全局参数、页面参数时默认会对键/值做 encodeuricomponent。当设置为 disable 后,则不再对键/值做encodeuricomponent,解析规则详情可查看 小程序全局/页面参数设置以及解析细节,基础库 2.7.19 及以上开始支持,同时需使用 ide 3.0.0 及以上版本进行构建。使用示例loadingpages开启和声明 骨架屏 的规则。常见问题q:a 页面(列表页)设置允许下拉刷新,b 页面(详情页)设置禁止下拉 allowsbouncevertical: no, a 页面跳转 b 页面后再点左上角返回 a 页面,此时 a 页面无法下拉刷新。a:a 页面设置下拉刷新的同时设置 allowsbouncevertical: yes,即可解决该问题。注意:设置下拉刷新的时候一定要设置允许下拉。