参考文档:https://www.it610.com/article/1306143038938058752.htm
在使用uniapp开发APP的时候,很多时候需要用到自动登录功能,由于uniapp默认显示的第一页是在pages.json中设置的第一项,如果我们将登录页设置为pages.json中第一项的话,在自动登录首页的时候会从登录页一闪而过;如果设置首页为pages.json中第一项的话第一次登录App则会从首页一闪而过,如果是多身份登录的App则设置哪一个身份的首页当做第一显示页面也都不合适。
解决方法:
- 修改默认的启动界面参数,当页面加载完毕再手动关闭启动页面;
设置空白页作为第一启动页
- 首先修改manifest.json配置文件关闭默认启动界面
"app-plus" : {
"usingComponents" : true,
"nvueCompiler" : "uni-app",
"compilerVersion" : 3,
"splashscreen" : { // 主要是修改该对象下的参数
"alwaysShowBeforeRender" : false,
"waiting" : false,
"autoclose" : false,
"delay" : 0
},
...
}
- 然后在App生命周期onShow或者在你需要的地方手动关闭启动界面,设置的延迟时间不宜过长,不建议超过6s,跳转到指定页面
onShow: function() {
// 配置1秒后自动关闭启动页
setTimeout(() => {
// #ifdef APP-PLUS
plus.navigator.closeSplashscreen();
// #endif
}, 1000);
// 当启动页关闭时,页面已经跳转到对应页面了
let isLogin = uni.getStorageSync('isLogin')
if (isLogin) {
uni.redirectTo({
url: '/pages/dormManager/index'
})
}
},