在iphoneX及以上版本从外链回退不触发事件,7P,7没发现这个bug
安卓上自测没有发现这个问题
最近作项目中发现了一个问题,iphoneX及以上版本从当前vue应用中跳转到外部连接而后在回退到vue应用里面,beforeRouterEnter没有被触发。html
因为在其余手机上测试没有问题,因此一开始我觉得代码写的有问题,而后就开始漫长的找坑之路,后来我将事件放到了created、mounted里面也没有执行代码,那就证实有可能页面被缓存了,因此这些钩子没有触发。vue
因此百度了一下,找到了onpageshow这个事件浏览器
onpageshow 事件在用户浏览网页时触发。
onpageshow 事件相似于 onload事件,onload 事件在页面第一次加载时触发, onpageshow 事件在每次加载页面时触发,即 onload 事件在页面从浏览器缓存中读取时不触发。
也就是当页面显示到前台的时候就触发pageshow这个事件,因此我就在created里面注册了这个事件并将要执行的代码写进去,再次真机调试以后发现解决这个问题了。缓存
created () { window.addEventListener('pageshow', () => { //外链回退到vue应用要执行的代码 }) }
记录下来避免之后再次跳坑iphone