如题!
混合开发,通过webview嵌入我写好的vue单页面,但是发现$router.go(-1)失效,用不了,但是我在安卓和浏览器是没问题的
如题!
混合开发,通过webview嵌入我写好的vue单页面,但是发现$router.go(-1)失效,用不了,但是我在安卓和浏览器是没问题的
楼主解决了吗
我找到问题了,我这边是因为window.history.length为1,为1的时候是无法后退的,可以让安卓和ios开发者写个方法调用原生的回退处理
if (window.history.length == 1) {
//以下代码为 原生开发给我的方法
if (iphoneType === 'ios') {
window.webkit.messageHandlers.nativeGoBack.postMessage({
name: '-1'
});
} else if (iphoneType === 'Android') {
window.jsCallOCFunction.nativeGoBack(-1);
}
} else {
router.go(length)
}
遇到相同的问题,但是这个push方法存在一个缺陷,比如你用keep-alive中列表状态缓存的时候,push方法是没法进行缓存的。进入详情后,回退回来的时候无法达到保留之前浏览位置的状态。
8 回答4.8k 阅读✓ 已解决
6 回答3.5k 阅读✓ 已解决
4 回答4.2k 阅读
5 回答2.9k 阅读✓ 已解决
5 回答6.4k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
大概就是通过路由守卫,在进入一个页面的时候,将页面的name缓存到localStorage的一个数组里,然后当点击后退的时候读取这个数组,再通过router.push({name})进行跳转,达到回退的效果。