跳至主要內容

微信小程序配置项

大约 12 分钟

全局配置

https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html#entryPagePath

小程序根目录下的 app.json 文件用来对微信小程序进行全局配置。文件内容为一个 JSON 对象,有以下属性:

属性类型必填描述最低版本
entryPagePathopen in new windowstring小程序默认启动首页
pagesopen in new windowstring[]页面路径列表
windowopen in new windowObject全局的默认窗口表现
tabBaropen in new windowObject底部 tab 栏的表现
networkTimeoutopen in new windowObject网络超时时间
debugopen in new windowboolean是否开启 debug 模式,默认关闭
functionalPagesopen in new windowboolean是否启用插件功能页,默认关闭2.1.0open in new window
subpackagesopen in new windowObject[]分包结构配置1.7.3open in new window
workersopen in new windowstringWorker 代码放置的目录1.9.90open in new window
requiredBackgroundModesopen in new windowstring[]需要在后台使用的能力,如「音乐播放」
requiredPrivateInfosopen in new windowstring[]调用的地理位置相关隐私接口
pluginsopen in new windowObject使用到的插件1.9.6open in new window
preloadRuleopen in new windowObject分包预下载规则2.3.0open in new window
resizableopen in new windowbooleanPC 小程序是否支持用户任意改变窗口大小(包括最大化窗口);iPad 小程序是否支持屏幕旋转。默认关闭2.3.0open in new window
usingComponentsopen in new windowObject全局自定义组件open in new window配置开发者工具 1.02.1810190
permissionopen in new windowObject小程序接口权限相关设置微信客户端 7.0.0
sitemapLocationopen in new windowstring指明 sitemap.json 的位置
styleopen in new windowstring指定使用升级后的weui样式2.8.0open in new window
useExtendedLibopen in new windowObject指定需要引用的扩展库2.2.1open in new window
entranceDeclareopen in new windowObject微信消息用小程序打开微信客户端 7.0.9
darkmodeopen in new windowboolean小程序支持 DarkMode2.11.0open in new window
themeLocationopen in new windowstring指明 theme.json 的位置,darkmode为true为必填开发者工具 1.03.2004271
lazyCodeLoadingopen in new windowstring配置自定义组件代码按需注入2.11.1open in new window
singlePageopen in new windowObject单页模式相关配置2.12.0open in new window
supportedMaterialsObject聊天素材小程序打开open in new window相关配置2.14.3open in new window
serviceProviderTicketstring定制化型服务商open in new window票据
embeddedAppIdListopen in new windowstring[]半屏小程序 appId2.20.1open in new window
halfPageopen in new windowObject视频号直播半屏场景设置2.18.0open in new window
debugOptionsopen in new windowObject调试相关配置2.22.1open in new window
enablePassiveEventopen in new windowObject或booleantouch 事件监听是否为 passive2.24.1open in new window
resolveAliasopen in new windowObject自定义模块映射规则
rendereropen in new windowstring全局默认的渲染后端2.30.4open in new window
rendererOptionsopen in new windowObject渲染后端选项2.31.1open in new window
componentFrameworkstring组件框架,详见相关文档open in new window2.30.4open in new window
miniAppObject多端模式场景接入身份管理服务时开启小程序授权页相关配置,详见相关文档open in new window
staticObject正常情况下默认所有资源文件都被打包发布到所有平台,可以通过 static 字段配置特定每个目录/文件只能发布到特定的平台(多端场景) 相关文档open in new window
convertRpxToVwboolean配置是否将 rpx 单位转换为 vw 单位,开启后能修复某些 rpx 下的精度问题3.3.0open in new window

以下简单列举了一部分, 其他未列举可以在官方文档中查看

entryPagePath

指定小程序的默认启动路径(首页),常见情景是从微信聊天列表页下拉启动、小程序列表启动等。如果不填,将默认为 pages 列表的第一项。不支持带页面路径参数。

pages

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

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

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

则需要在 app.json 中写

{
  "pages": ["pages/index/index", "pages/logs/logs"]
}

window

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

属性类型默认值描述最低版本
navigationBarBackgroundColorHexColor#000000导航栏背景颜色,如 #000000
navigationBarTextStylestringwhite导航栏标题、状态栏颜色,仅支持 black / white
navigationBarTitleTextstring导航栏标题文字内容
navigationStylestringdefault导航栏样式,仅支持以下值: default 默认样式 custom 自定义导航栏,只保留右上角胶囊按钮。参见注 2。iOS/Android 微信客户端 6.6.0,Windows 微信客户端不支持
homeButtonbooleandefault在非首页、非页面栈最底层页面或非tabbar内页面中的导航栏展示home键微信客户端 8.0.24
backgroundColorHexColor#ffffff窗口的背景色
backgroundTextStylestringdark下拉 loading 的样式,仅支持 dark / light
backgroundColorTopstring#ffffff顶部窗口的背景色,仅 iOS 支持微信客户端 6.5.16
backgroundColorBottomstring#ffffff底部窗口的背景色,仅 iOS 支持微信客户端 6.5.16
enablePullDownRefreshbooleanfalse是否开启全局的下拉刷新。 详见 Page.onPullDownRefreshopen in new window
onReachBottomDistancenumber50页面上拉触底事件触发时距页面底部距离,单位为 px。 详见 Page.onReachBottomopen in new window
pageOrientationstringportrait屏幕旋转设置,支持 auto / portrait / landscape 详见 响应显示区域变化open in new window2.4.0open in new window (auto) / 2.5.0open in new window (landscape)
restartStrategyopen in new windowstringhomePage重新启动策略配置2.8.0open in new window
initialRenderingCachestring页面初始渲染缓存open in new window配置,支持 static / dynamic2.11.1open in new window
visualEffectInBackgroundstringnone切入系统后台时,隐藏页面内容,保护用户隐私。支持 hidden / none2.15.0open in new window
handleWebviewPreloadstringstatic控制预加载下个页面的时机open in new window。支持 static / manual / auto2.15.0open in new window

如:

{
  "window": {
    "navigationBarBackgroundColor": "#ffffff",
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "微信接口功能演示",
    "backgroundColor": "#eeeeee",
    "backgroundTextStyle": "light"
  }
}
img
img

tabBar

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

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

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

属性类型必填说明
pagePathstring页面路径,必须在 pages 中先定义
textstringtab 上按钮文字
iconPathstring图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。 positiontop 时,不显示 icon。
selectedIconPathstring选中时的图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。 positiontop 时,不显示 icon。
img
img

以下是一个简单示例

"tabBar": {
	"color": "#00A95E",
	"selectedColor": "#FA8072",
	"backgroundColor": "#f5f5f5",
	"borderStyle": "black",
	"list": [
		{
			"pagePath": "pages/index/index",
			"text": "Index",
			"iconPath": "icon/_home.png",
			"selectedIconPath": "icon/home.png"
		},
		{
			"pagePath": "pages/logs/logs",
			"text": "Logs",
			"iconPath": "icon/_search.png",
			"selectedIconPath": "icon/search.png"
		},
		{
			"pagePath": "pages/demo/demo",
			"text": "Demo",
			"iconPath": "icon/_videocamera.png",
			"selectedIconPath": "icon/videocamera.png"
		}
	]
}
image-20240120160151572
image-20240120160151572

networkTimeout

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

属性类型必填默认值说明
requestnumber60000wx.requestopen in new window 的超时时间,单位:毫秒。
connectSocketnumber60000wx.connectSocketopen in new window 的超时时间,单位:毫秒。
uploadFilenumber60000wx.uploadFileopen in new window 的超时时间,单位:毫秒。
downloadFilenumber60000wx.downloadFileopen in new window 的超时时间,单位:毫秒

debug

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

页面配置

app.json 中的部分配置,也支持对单个页面进行配置,可以在页面对应的 .json 文件来对本页面的表现进行配置。

页面中配置项在当前页面会覆盖 app.json 中相同的配置项(样式相关的配置项属于 app.json 中的 window 属性,但这里不需要额外指定 window 字段),具体的取值和含义可参考全局配置文档open in new window中说明。

文件内容为一个 JSON 对象,有以下属性:

属性类型默认值描述最低版本
navigationBarBackgroundColorHexColor#000000导航栏背景颜色,如 #000000
navigationBarTextStylestringwhite导航栏标题、状态栏颜色,仅支持 black / white
navigationBarTitleTextstring导航栏标题文字内容
navigationStylestringdefault导航栏样式,仅支持以下值: default 默认样式 custom 自定义导航栏,只保留右上角胶囊按钮。iOS/Android 微信客户端 7.0.0,Windows 微信客户端不支持
homeButtonbooleanfalse在非首页、非页面栈最底层页面或非tabbar内页面中的导航栏展示home键微信客户端 8.0.24
backgroundColorHexColor#ffffff窗口的背景色
backgroundColorContentHexColor#RRGGBBAA页面容器背景色,点击查看设置背景色详情open in new window
backgroundTextStylestringdark下拉 loading 的样式,仅支持 dark / light
backgroundColorTopstring#ffffff顶部窗口的背景色,仅 iOS 支持微信客户端 6.5.16
backgroundColorBottomstring#ffffff底部窗口的背景色,仅 iOS 支持微信客户端 6.5.16
enablePullDownRefreshbooleanfalse是否开启当前页面下拉刷新。 详见 Page.onPullDownRefreshopen in new window
onReachBottomDistancenumber50页面上拉触底事件触发时距页面底部距离,单位为px。 详见 Page.onReachBottomopen in new window
pageOrientationstringportrait屏幕旋转设置,支持 auto / portrait / landscape 详见 响应显示区域变化open in new window2.4.0open in new window (auto) / 2.5.0open in new window (landscape)
disableScrollbooleanfalse设置为 true 则页面整体不能上下滚动。 只在页面配置中有效,无法在 app.json 中设置
usingComponentsObject页面自定义组件open in new window配置1.6.3open in new window
initialRenderingCachestring页面初始渲染缓存open in new window配置,支持 static / dynamic2.11.1open in new window
stylestringdefault启用新版的组件样式2.10.2open in new window
singlePageObject单页模式相关配置2.12.0open in new window
restartStrategystringhomePage重新启动策略配置2.8.0open in new window
handleWebviewPreloadstringstatic控制预加载下个页面的时机open in new window。支持 static / manual / auto2.15.0open in new window
visualEffectInBackgroundstring切入系统后台时,隐藏页面内容,保护用户隐私。支持 hidden / none,若对页面单独设置则会覆盖全局的配置,详见 全局配置open in new window2.15.0open in new window
enablePassiveEventObject或boolean事件监听是否为 passive,若对页面单独设置则会覆盖全局的配置,详见 全局配置open in new window2.24.1open in new window
rendererstring渲染后端2.30.4open in new window
rendererOptionsObject渲染后端选项,详情相关文档open in new window3.1.0open in new window
componentFrameworkstring组件框架,详情相关文档open in new window2.30.4open in new window
  • 注:并不是所有 app.json 中的配置都可以在页面覆盖或单独指定,仅限于本文档包含的选项。
  • 注:iOS/Android 客户端 7.0.0 以下版本,navigationStyle 只在 app.json 中生效。
image-20240120160819935
image-20240120160819935

WXSS

WXSS (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式。

WXSS 用来决定 WXML 的组件应该怎么显示。

为了适应广大的前端开发者,WXSS 具有 CSS 大部分特性。同时为了更适合开发微信小程序,WXSS 对 CSS 进行了扩充以及修改。

与 CSS 相比,WXSS 扩展的特性有:

  • 尺寸单位
  • 样式导入

尺寸单位

  • rpx(responsive pixel): 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。
设备rpx换算px (屏幕宽度/750)px换算rpx (750/屏幕宽度)
iPhone51rpx = 0.42px1px = 2.34rpx
iPhone61rpx = 0.5px1px = 2rpx
iPhone6 Plus1rpx = 0.552px1px = 1.81rpx

建议: 开发微信小程序时设计师可以用 iPhone6 作为视觉稿的标准。

注意: 在较小的屏幕上不可避免的会有一些毛刺,请在开发时尽量避免这种情况。

样式导入

使用@import语句可以导入外联样式表,@import后跟需要导入的外联样式表的相对路径,用;表示语句结束。

示例代码:

/** common.wxss **/
.small-p {
  padding:5px;
}
/** app.wxss **/
@import "common.wxss";
.middle-p {
  padding:15px;
}

内联样式

框架组件上支持使用 style、class 属性来控制组件的样式。

  • style:静态的样式统一写到 class 中。style 接收动态的样式,在运行时会进行解析,请尽量避免将静态的样式写进 style 中,以免影响渲染速度。
<view style="color:{{color}};" />
  • class:用于指定样式规则,其属性值是样式规则中类选择器名(样式类名)的集合,样式类名不需要带上.,样式类名之间用空格分隔。
<view class="normal_view" />

选择器

目前支持的选择器有:

选择器样例样例描述
.class.intro选择所有拥有 class="intro" 的组件
#id#firstname选择拥有 id="firstname" 的组件
elementview选择所有 view 组件
element, elementview, checkbox选择所有文档的 view 组件和所有的 checkbox 组件
::afterview::after在 view 组件后边插入内容
::beforeview::before在 view 组件前边插入内容

全局样式与局部样式

定义在 app.wxss 中的样式为全局样式,作用于每一个页面。在 page 的 wxss 文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖 app.wxss 中相同的选择器。