uniapp 判断是否登录,是跳转至首页,否跳转至登录页

9,127 阅读1分钟

1.问题

在使用uni-app开发app 打包完成后 用户没登录首次进入跳转登录页 登录跳转至首页!

平常解决方法是onLaunch生命周期里面判断用户是否登录 但是有一个不好的体验就是每次进入程序先进入设定的第一个页面 在进入首页 这样体验不是很好~

2.解决

uni-app文档地址:https://uniapp.dcloud.io/collocation/manifest?id=splashscreen H5+文档地址:http://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.closeSplashscreen

使用plus.navigator.closeSplashscreen() 首先manifest.json app-plus 默认这两值是true 设置改为false 需要时在关闭

18463412-ccf8e3308f9ed59a.png manifest.json 源码配置

"app-plus" : {
     "splashscreen" : {
         "alwaysShowBeforeRender" : false,
         "waiting" : true,
         "autoclose" : false,
         "delay" : 0
     }
 }

App.vue 文件 onLaunch 生命周期里面写法 (根据自己需求情况判断)这里是用到token判断存在跳转至首页 不存在跳转登录页

onLaunch: function() {
    console.log('App Launch');
    // #ifdef APP-PLUS
    // token标志来判断
    let token= uni.getStorageSync('token');    
    if (token) {
        //存在则关闭启动页进入首页
	plus.navigator.closeSplashscreen();
	
    } else {
	//不存在则跳转至登录页
        uni.reLaunch({
            url: "/pages/login/login",
            success: () => {
                plus.navigator.closeSplashscreen();
            }
    	})
    }
    // #endif
}