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

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

所属分类:软件开发 来源: 丁老师原创 发布时间:2024-05-07 20:24 浏览: 3901 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)

这样就解决了。

相关文章

开发一个鸿蒙APP应用要多少钱?

最近有很多客户咨询,想要开发鸿蒙APP应用,但是开发一个鸿蒙APP要多少钱呢?和普通的安卓APP相比,价格是贵还是便宜呢?今天丁老师来介绍一下。鸿蒙应用,特别是采用原生鸿蒙技术栈,比如ArkTS/ArkUI进行开发,费用成本大概与普通安...

Css中Flex布局下两边高度不一致的解决方...

在css中,flex弹性布局可以实现内部对象左右、垂直的对齐,在多个html对象中,设置flex后一般情况下,内部的对象高度是保持一致的。比如一个div设置了flex,内部有3个div,这3个div的高度以最高的一个div高度值为准保持...

微信小程序获取用户openid达到最高次数限...

有同学提问,他们公司的微信小程序,某个业务板块需要调用微信的openid,但是目前访问量巨大,已经突破了微信小程序对openid的最多次数限制,很多用户无法正常开展业务,该怎么办呢?经过丁老师分析和研究,发现该公司的小程序因访问量巨大,...

bootstrap selectpicker...

selectpicker组件,广泛应用于基于bootstrap的框架中,比如fastadmin框架等。在使用时,经常有同学问到,在对select进行操作后,比如添加和删除option,但是select没有更新,这是怎么回事呢?请看代码:...

推荐文章

fastadmin add/edit方法不更...

问题:fastadmin的add/edit方法无法保存数据,检查了页面,name=row['name']正常传送,检查controller,也是默认的方法,什么也没有动可就是无法保存数据。解决:经过仔细研究发现,原来是htm...

fastadmin后台列表默认分页数量由10...

没那么多废话,直接上修改方法public\assets\js\require-table.jspageSize: Config.pagesize || localStorage.getItem("pagesize") |...

宝塔"在未指定SSL默认站点时,未开启SSL...

宝塔系统相关问题解决方法

phpstorm怎么取消html文件中sty...

phpstorm程序中,在打开html时总会出现对style属性的折叠和隐藏,这样在检查代码的时候非常不直观,容易漏掉很多东西,非常的不方便,如图: