H5:解決Vue在IOS13上頁面回退不會刷新的問題

場景描述

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;
});

 

發佈了74 篇原創文章 · 獲贊 15 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章