uni-app编译运行到iOS时 pages.json中pages节点第一项非应用入口页 但强制pages/index/index为入口页
uni-app编译运行到iOS时 pages.json中pages节点第一项非应用入口页 但强制pages/index/index为入口页
示例代码:
{
"pages": [
{
"path": "pages/guide/guide",
"style": {
"navigationBarTitleText": "uni-app",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "主页",
"navigationStyle": "custom",
"enablePullDownRefresh": false,
"backgroundColor": "#313055",
"backgroundColorBottom": "#EAE4F3",
"disableScroll": true
}
}
]
}
操作步骤:
尝试设置pages第一个节点pages/guide/guide
作为应用入口页,编译运行到App - iOS依然打开的入口页是pages/index/index
,更名或者删除pages/index/index
节点后重新运行白屏。
预期结果:
pages节点的第一项为应用入口页(即首页)
实际结果:
pages节点的第一项不是应用入口页(即首页),pages/index/index
不论放在哪个节点位置都强制成为了入口页
bug描述:
uniapp编译运行到iOS时,在pages.json中pages节点的第一项不是应用入口页,强制pages/index/index
成为了入口页,如果删掉pages/index/index
后编译会进入白屏页面。
尝试过通过自定义基座或者标准基座都是同样的问题,而且修改pages.json后必须重新运行才能生效。
没有发现这个问题,下面是运行结果截图,并且附带测试项目,您看一下,要是还有问题,您复现之后再发一下
确实 极简项目包没有复现这个问题,但是在实际项目中依然还能复现。等后面有空我在测试项目中加入uniCloud/push等等用到的模块,看看能不能再复现出来。
在uni-app项目中,pages.json
文件用于配置应用的页面路由、导航条、选项卡等页面级信息。当你希望编译运行到iOS平台时,如果pages.json
中 pages
节点的第一项不是应用的实际入口页,但系统却强制以 pages/index/index
作为入口页,这通常是因为配置问题或者平台特定的行为。
为了确保你的应用按照预期启动到指定的页面,你需要检查并正确配置 pages.json
文件中的 launch
节点以及 pages
节点的顺序和内容。以下是一个示例配置,其中我们将 pages/home/home
设置为应用的入口页,而不是 pages/index/index
。
{
"pages": [
{
"path": "pages/home/home",
"style": {
"navigationBarTitleText": "Home"
}
},
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "Index"
}
},
// 其他页面配置...
],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "App Name",
"navigationBarBackgroundColor": "#FFFFFF",
"backgroundColor": "#EEEEEE"
},
"tabBar": {
"color": "#7A7E83",
"selectedColor": "#3cc51f",
"borderStyle": "black",
"backgroundColor": "#ffffff",
"list": [
{
"pagePath": "pages/home/home",
"text": "Home",
"iconPath": "static/tabbar/home.png",
"selectedIconPath": "static/tabbar/home-active.png"
},
{
"pagePath": "pages/index/index",
"text": "Index",
"iconPath": "static/tabbar/index.png",
"selectedIconPath": "static/tabbar/index-active.png"
}
// 其他tab项...
]
},
"launch": {
"path": "pages/home/home", // 设置应用启动时加载的页面路径
"query": {} // 启动参数,可以在页面onLoad函数中获取
}
}
在上述配置中,launch
节点的 path
属性被设置为 "pages/home/home"
,这确保了应用在启动时加载的是 home
页面而不是 index
页面。同时,注意 pages
数组中的顺序并不影响启动页,启动页是由 launch
节点决定的。
确保你的 pages.json
配置正确无误后,重新编译并运行你的uni-app项目到iOS平台,应用应该会按照你的配置启动到指定的 home
页面。如果问题依旧存在,检查是否有其他配置文件或代码影响了启动流程。