ios中webview上h5返回不刷新


一、webview中嵌套的是單頁面應用:

單頁面應用中A跳轉到B,B提交了數據之后,返回A頁面,A頁面不刷新,接口也不重新獲取

解決辦法:

  1、在A頁面中 watch中監聽 $route 變化,重新拉取數據 (推薦使用!!!)

  2、window.on('pageshow', function() { // 重新獲取數據 }) ------------ 試過了,這種方法在一些手機上好使,在一些手機上不好使,所以建議使用第一種方式

    還可能出現的問題:接口不重新獲取(開發的時候有個場景:一個頁面的數據是分頁的,先拉一組數據,操作完之后,提交再拉取下一頁數據,發現下一頁數據不拉取,還用的是上一組數據)

  給接口加個時間戳,這個開發的時候,沒試過,但應該好使

二、webview中嵌套的是多頁應用:

  多頁應用不能監聽$route了,所以單頁應用第一種方案不試用

  1、監測頁面隱藏展示

    (1)使用window.on('pageshow', function() { // 重新獲取數據 }) ------------ 問題可能同單頁面應用

    (2)

var hidden, visibilityChange;
if (typeof document.hidden !== "undefined") {
    hidden = "hidden";
    visibilityChange = "visibilitychange";
} else if (typeof document.mozHidden !== "undefined") {
    hidden = "mozHidden";
    visibilityChange = "mozvisibilitychange";
} else if (typeof document.msHidden !== "undefined") {
    hidden = "msHidden";
    visibilityChange = "msvisibilitychange";
} else if (typeof document.webkitHidden !== "undefined") {
    hidden = "webkitHidden";
    visibilityChange = "webkitvisibilitychange";
}
 
// 添加監聽器
document.addEventListener(visibilityChange, function() {
    console.log("當前頁面是否被隱藏:" + document[hidden]);
}, false);

 

  2、給頁面路徑上加上時間戳和接口url上加上時間戳(推薦使用!!!)

 

最后,如果上述都不好使,記得朋友說過,可以讓ios同事加一個手動刷新的 action方法,h5調用(需要看ios開發同事幫不幫忙了😢)

 

以上是總結的可以嘗試的解決辦法,實在不行,也沒轍了,如果有其他辦法的朋友看到,評論可以分享一下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM