场景描述

vue搭建的多页面应用项目,使用go(-1)回退至前个页面。

正常的话,回退后会刷新前个页面,各个生命周期钩子函数触发。

然而,在Android和ios13以下是正常的,到了ios13就不行了。

 

解决方案

由于项目为多页面应用,无法通过Vuex状态状态解决该问题,因为多页面应用创建了多个vue实例。

同理,尝试了storage监听、evenbus也无法解决。

问题原因应该是ios13的Webview刷新机制改了,看到了一个回答:WKWebView回退不会对页面再次刷新

通过在mounted中监听window的pageshow事件来手动刷新,解决!

window.addEventListener('pageshow', function(){        
    if(this.isPageHide) {
        window.location.reload();
    }
});
window.addEventListener('pagehide', function(){       
    this.isPageHide = true;
});

 

Logo

前往低代码交流专区

更多推荐