H5:解决Vue在IOS13上页面回退不会刷新的问题
场景描述vue搭建的多页面应用项目,使用go(-1)回退至前个页面。正常的话,回退后会刷新前个页面,各个生命周期钩子函数触发。然而,在Android和ios13以下是正常的,到了ios13就不行了。解决方案由于项目为多页面应用,无法通过Vuex状态状态解决该问题,因为多页面应用创建了多个vue实例。同理,尝试了storage监听、evenbus也无法解决。问题原因...
·
场景描述
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;
});
更多推荐
已为社区贡献6条内容
所有评论(0)