H5跳转问题记录
H5跳转问题
1. 问题记录
在嵌入在APP的页面中,出现了H5的多层级跳转返回混乱的问题。我们在页面跳转的时候统一用了window.location.replace
这样的本意是在history
的栈中,推进了当前栈,history
栈的长度+1的。当触发webview
的返回事件时,最好是选择history.go()
或者history.back()
的方法
2. 业务中的使用
如果APP原生没有对返回按钮做处理的话,就相当于浏览器的返回按钮是一样的,我们现有的需求是希望用户点击弹框的关闭按钮,跳转到上一级页面。最初的代码是选择使用window.location.replace
的方式,这种方式就使得history
栈的长度+1,在回到上一级页面时,再次点击返回,又回到了有弹框的页面,这样就会陷入到死循环。所以,我们在这次关闭弹框时,选择了用history.go(-1)
的方式,这样不管用户怎么操作,用户都是从上一级页面进来的,返回的时候也始终是返回到上一级页面。
3. H5中的坑
- 在嵌入到APP的H5页面中,直接使用
history
会存在报错的异常,我们最好是选择使用window.history
- H5页面中的栈溢出,这种情况不确定是不是在所有嵌入到APP H5页面都是这样,在IOS中,如果使用
window.location.replace
的跳转,会出现栈溢出,超出最大限制的问题,所以,在跳转的事件中,我们统一使用了window.location.href
的事件。
这些问题都是在我们H5嵌入到APP中关于
history
遇到的问题整理
本文来自博客园,作者:前端加油站,转载请注明原文链接:https://www.cnblogs.com/bllx/p/16033528.html