本文主要是介绍uniapp - H5 在 UC 浏览器中返回上一页失效的解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 前言
最近使用 uniapp 开发的 H5 在测试中遇到的问题:有A、B两个页面,反复从A页面进入B页面后,在B页面会存在返回函数失效问题。经过测试发现,如果反复进入B页面的参数相同,在第三次进入后,返回就会失效,不管是 uniapp 自带的头部导航,还是 uni.navigateBack API 都会失效,不能从 B页面 返回 A页面。目前测试其他浏览器未出现这种情况。
2. 问题分析
由于看不到报错,所以只是单纯的怀疑 UC浏览器 使用了类似微信小程序的页面栈的机制,一个就是页面栈存在个数的限制,当页面栈到了一个限定的数量,就会报错,导致不能进行返回。比如微信小程序的页面栈我记得之前限制是10个,如果你两个页面相互跳转,不进行删除的话,第五次跳转就不会进行跳转,可以参考【微信小程序页面5层限制的一种解决方案】。如果是这种问题,那么解决问题的办法就只能将返回方法重写成关闭当前页面再跳转回目标页面。第二种就是相同参数的页面 UC浏览器 可能直接缓存了相同参数的页面,然后在判断了反复进入相同页面参数相同的次数。如果有不对的地方,请指正,谢谢!因为本人没有单独对 UC 浏览器进行了解,肯定对他的机制理解有误。
3. 测试
- 给地址带不同参数,反复点击,发现切换着点击,就不会出现返回失效问题。
这篇关于uniapp - H5 在 UC 浏览器中返回上一页失效的解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!