项目为了快速开发,IOS和安卓都只搭了一个框架,用webview调用html来实现app的各项功能,由于是第一次做混合开发,以为安卓和苹果用一套代码就万事大吉了,万万没想到我还是太天真了,各种兼容性问题搞得头皮发麻,下面这个问题就是vue-router在安卓中的问题:
跳转页面的时候用的是router.push,而push的时候会有跳转记录,导致按安卓的返回键的时候跳转错乱,比如说页面顺序是A-B-C,在C里面修改数据后push跳转到B页面,按逻辑来说,这时候按返回应该回到A页面,但是因为push有跳转记录,按返回键就会出现这样的问题:B-C-B-A,在网上找了挺多资料,有人说用router.go(n),router不带参数的时候确实可以,但是带参数就不行了,然后下面是我的解决办法,仅供参考,如果有问题可以评论沟通~~
router.replace(),用法和push类似,也可以带参数跳转,但是会替换掉当前跳转记录,在A-B-C的时候仍旧用router.push,记录下跳转的顺序,然后从C回到B页面的时候用router.replace替换掉当前的历史记录,这样使用安卓的返回键就可以正常的从B页面回到A页面了。
本人菜鸟一枚,上述如有错误还请大家多多包涵~~~
ps:安卓的返回键真的问题巨多,带参数跳转的话还是建议不要用这种方法了,重新请求数据或者存放在vuex里面吧。。。