uniapp 实现保持登录状态

主要思路:在项目启动时判断是否存在token(根据不同的业务需求有不同的判断条件),如果存在则直接进入首页,不存在则先登录,登录成功进入首页。

于是,在app的生命周期函数中操作:

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

运行时发现会从登录页面闪一下才会进入首页,是因为app默认进入第一个页面(我开始设置的第一个页面是登录页),即使存在token也会从第一个页面闪一下再进入首页,这样的用户体验非常不好。

于是添加了plus.navigator.closeSplashscreen();并且设置了以下参数:

uniapp 实现保持登录状态_第1张图片

 如果不理解可以参考官方文档说明 https://uniapp.dcloud.io/collocation/manifest.html#splashscreen

uniapp 实现保持登录状态_第2张图片

 除此之外,还需要将app应用的第一个页面设置为首页(pages数组的第一项即为第一个页面)

uniapp 实现保持登录状态_第3张图片

 此时,启动app就可以实现我们想要的效果了。

如有问题,欢迎留言!!

你可能感兴趣的:(uniapp,vue.js,javascript,uni-app)