{
"pages": [
"pages/home/home",
"pages/content/index",
"pages/chat/index",
"pages/user/index",
"pages/map/index",
],
"tabBar": {
"custom": true,
"color": "#666666",
"selectedColor": "#FF5F15",
"backgroundColor": "#ffffff",
"borderStyle": "black",
"list": [
{
"pagePath": "pages/home/home",
"text": "发现"
},
{
"pagePath": "pages/goods/category/index",
"text": "朋友"
},
{
"pagePath": "pages/cart/index",
"text": "商品"
},
{
"pagePath": "pages/content/index",
"text": "我的"
}
]
},
"requiredPrivateInfos": [
"chooseAddress"
],
"lazyCodeLoading": "requiredComponents",
"usingComponents": {},
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "Weixin",
"navigationBarTextStyle": "black"
},
"style": "v2",
"componentFramework": "glass-easel",
"plugins": {
"WechatSI": {
"version": "0.3.6",
"provider": "wx069ba97219f66d99"
}
},
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示"
}
}
}
上述app.json的代码如上,详细分析用法以及说明
1. 页面配置 (pages
)
json
"pages": [ "pages/home/home", "pages/content/index", "pages/chat/index", "pages/user/index", "pages/map/index" ]
-
作用:声明小程序的所有页面路径(无需写后缀名)。
-
注意:
-
第一个页面是小程序的首页(启动时默认加载)。
-
新增页面需在此注册,否则无法访问。
-
示例中
pages/goods/category/index
和pages/cart/index
未在pages
数组中,但出现在tabBar
中,这会导致页面无法正常跳转,需补充完整。
-
2. 底部 Tab 栏 (tabBar
)
json
"tabBar": { "custom": true, "color": "#666666", "selectedColor": "#FF5F15", "backgroundColor": "#ffffff", "borderStyle": "black", "list": [ { "pagePath": "pages/home/home", "text": "发现" }, { "pagePath": "pages/goods/category/index", "text": "朋友" }, { "pagePath": "pages/cart/index", "text": "商品" }, { "pagePath": "pages/content/index", "text": "我的" } ] }
-
关键字段:
-
custom: true
:启用自定义 TabBar,需在项目中创建custom-tab-bar
组件。 -
color
/selectedColor
:未选中/选中时的文字颜色。 -
list
:Tab 列表,pagePath
必须已在pages
中注册。
-
-
问题:
-
pages/goods/category/index
和pages/cart/index
未在pages
数组中,需补充。 -
text
命名不一致(如“朋友”可能应为“聊天”)。
-
3. 插件配置 (plugins
)
json
"plugins": { "WechatSI": { "version": "0.3.6", "provider": "wx069ba9742139f662d919" } }
-
作用:声明使用的插件(这里是微信同声传译插件)。
-
注意:
-
需在开发者工具中添加插件(设置 → 第三方服务 → 插件管理)。
-
版本号
0.3.6
需与插件发布版本一致。
-
4. 权限配置 (permission
和 requiredPrivateInfos
)
json
"permission": { "scope.userLocation": { "desc": "你的位置信息将用于小程序位置接口的效果展示" } }, "requiredPrivateInfos": ["chooseAddress"]
-
作用:
-
permission
:申请地理位置权限,用户首次使用时弹出授权窗口。 -
requiredPrivateInfos
:声明需要使用的敏感接口(如chooseAddress
选择收货地址)。
-
-
注意:
desc
字段是授权弹窗的说明文案,需清晰描述用途。
5. 其他重要配置
窗口样式 (window
)
json
"window": { "backgroundTextStyle": "light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "Weixin", "navigationBarTextStyle": "black" }
-
常用字段:
-
navigationBarTitleText
:导航栏标题(可单独在页面配置中覆盖)。 -
navigationBarTextStyle
:仅支持black
/white
。
-
性能优化 (lazyCodeLoading
)
json
"lazyCodeLoading": "requiredComponents"
-
作用:开启按需注入代码和组件,减少启动耗时。
样式版本 (style
)
json
"style": "v2"
-
作用:启用新版样式(支持 CSS4 特性,如
var()
变量)。
渲染引擎 (componentFramework
)
json
"componentFramework": "glass-easel"
-
作用:使用新版 GlassEasel 渲染引擎(提升性能)。
完整修正建议
-
补充缺失的页面路径:
json
"pages": [ "pages/home/home", "pages/content/index", "pages/chat/index", "pages/user/index", "pages/map/index", "pages/goods/category/index", "pages/cart/index" ]
-
检查 TabBar 配置:
-
确保所有
pagePath
在pages
中注册。 -
如果使用自定义 TabBar,需在项目根目录添加
custom-tab-bar
组件。
-
-
插件和权限:
-
确认微信同声传译插件已正确安装。
-
敏感接口需在微信公众平台配置合法域名。
-