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