在开发微信的H5页面的时候,发现ISO的微信内置浏览器后退不刷新了,然而业务实现需要刷新。
IOS上的微信内置浏览器为了优化用户体验,采用了后退不刷新的策略,也就是A页面打开B页面,B页面后退到A页面的时候,A页面不刷新(连JS都不执行)。
可以理解成A页面打开B页面的时候,A页面被隐藏了,后退的时候只是把A页面显示出来了。
这种情况禁缓存是没有效果的,可以通过监听onpageshow
来刷新页面。
代码如下,在A页面的JS中添加
//解决IOS微信webview后退不执行JS的问题 window.onpageshow = function(event) { if (event.persisted) { window.location.reload(); } };
event.persisted
为了查看页面是直接从服务器上载入还是从缓存中读取的。