混合开发,通过webview嵌入我写好的vue单页面,但是发现$router.go(-1)失效

如题!
混合开发,通过webview嵌入我写好的vue单页面,但是发现$router.go(-1)失效,用不了,但是我在安卓和浏览器是没问题的

阅读 9.8k
5 个回答

大概就是通过路由守卫,在进入一个页面的时候,将页面的name缓存到localStorage的一个数组里,然后当点击后退的时候读取这个数组,再通过router.push({name})进行跳转,达到回退的效果。

vue的话你用vue的路由跳转,$router.push({name:'index',params:{}});

新手上路,请多包涵

想知道楼主是怎么解决的?求助

楼主解决了吗

我找到问题了,我这边是因为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方法是没法进行缓存的。进入详情后,回退回来的时候无法达到保留之前浏览位置的状态。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏