首页 > 原创文章 > 软件开发 > 查看文章

uniapp开发小程序和app时,根据登录状态判断首页onlaunch失效方法解决

所属分类:软件开发 来源: 丁老师原创 发布时间:2024-05-07 20:24 浏览: 4368 IP属地: 深圳
微信小程序开发

在使用uniapp开发app和小程序时,经常会用到打开app/小程序时,根据登录状态判断是显示首页还是跳转登录页的功能。此功能在app.vue的onlaunch方法中定义,方法如下:

onLaunch: function() {
	const _user=uni.getStorageInfo('user');
	if(_user){
		//已登录,默认首页,不处理
		// #ifdef APP-PLUS
			plus.navigator.closeSplashscreen();
		// #endif
	}
	else{
		//未登录,跳转到登录页
		uni.reLaunch({
			url:'/pages/login',
			success() {
				// #ifdef APP-PLUS
					plus.navigator.closeSplashscreen();
				// #endif
			}
		});
	}
},

但是在测试中发现,当用户未登录时,app/小程序没有跳转到login页,而是出现了空白,这是怎么回事呢?

经过丁老师不断的研究发现,这是uniapp的一个bug,系统在onLaunch的时候,同步reLaunch导致了系统出错。
解决办法,增加一个延时为0的timeout即可,代码如下:

setTimeout(() => {
	uni.reLaunch({
		url:'/pages/login'
	});
},0)

这样就解决了。

相关文章

如何使用Android Studio构建发布...

有同学咨询,想知道怎么样使用Android Studio来构建Flutter应用项目,今天丁老师来教你。在Android Studio中,选择顶部菜单的Build-Flutter-Build APk,就可以生成Flutter项目的APK...

重庆微信小程序开发

重庆微信小程序开发

扫二维码自动选择支付方式的实现

今天有小伙伴问,请问丁老师可以实现扫二维码,自动选择支付方式吗?比如支付宝扫码就支付宝支付,微信扫码就微信支付,云闪付扫码就用云闪付银联支付。这种方式可以实现吗?答案是肯定的,这种扫码支付方式,不但可以实现,而且已经大范围的应用在了我们...

idea storm换行自动显示的}括号如何...

在使用idea旗下的产品,如intellij idea,php storm,web storm时,有的时候编辑前端页面JS,在换行时经常会自动出现个}大括号,这一点程序不是很智能,其实后边都已经有括号了。比如下图这样:那么如何解决这个问...

推荐文章

fastadmin btn-dialog按钮...

fastadmin里自定义按钮的btn-dialog,弹出窗口时默认大小,设置了data-area无效,经过研究后,发现了可用的方法,直接上代码不废话:table.on('post-body.bs.table',functi...

宝塔面板phpmyadmin数据库表导航树禁...

宝塔面板的phpmyadmin,默认数据库表导航树是每30个一页,非常的不直观,可以通过修改宝塔phpmyadmin配置文件的方式来禁止他分页。修改方法:1.进入服务器/www/server/phpmyadmin/phpmyadmin_随机...

微信小程序开发生成普通二维码打开小程序的方法

在开发微信小程序的过程中,生成的是带有logo的小程序二维码,并且这个二维码不是通用的二维码,而是只能用微信打开的专属二维码,如图:遇到这样一个需求,生成的二维码要方形的通用二维码,并且不能带有小程序的logo。这种该怎么实现呢?经过查询,...

js复制对象改变原值的解决办法

在进行vue开发中,经常会遇到复制对象,赋值新对象后,原对象值被改变的问题,举个例子:let old={ "a":1, "b":2 } let new=old; new['c']=3;...