解决IOS中H5页面返回历史页页面不刷新问题

目前找到的有两种方式解决这种问题

1. 使用onpageshow事件,监听该事件,代码来源解决微信端ios返回页面不刷新的问题,目前该方法我测试可用

目前该种情况主要出现在IOS新升级的系统13.5 发现了该种情况(12目前没有发现该种情况),使用window.history.back(-1),返回历史页面,页面不刷新。目前该方法已测试,代码如下:

window.onload = function () {
	var isPageHide = false;
	// 页面加载(是没有刷新页面的,跟页面刷新有着本质的不同)
	window.addEventListener('pageshow', function () {
		if (isPageHide) {
			window.location.reload();
		}
	});
	window.addEventListener('pagehide', function () { 
		isPageHide = true;
	});
};

感谢 对应简书作者:流浪嘚蒲公英

2. 依然使用window.history.back(),但是使用window.history.back(-2),而不是-1,代码资料如何让微信IOS端,返回页面可刷新 不过该种方法我暂未测试,有兴趣的道友可以试试。

最终代码如下(详细说明,可见上方的知乎链接):

window.history.pushState("", "", location.href);
$(window).bind('popstate', function() {
    // -2可以促使ios返回的页面刷新
    history.go(-2);
});

感谢 知乎作者:李明一

你可能感兴趣的:(IOS开发相关)