一、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開發同事幫不幫忙了😢)
以上是總結的可以嘗試的解決辦法,實在不行,也沒轍了,如果有其他辦法的朋友看到,評論可以分享一下