问题描述:小程序使用webview 打开A站点(192.168.1.100:8001)下A.html,然后A.html点击跳入站点B(192.168.1.200:8001)下B.html。在B.html上想要控制左上角"<" 返回到小程序。在B页面上,首先引入(jweixin-1.6.0.js),然后写了如下js代码,,在android机上正常,但是iphone上均不能返回微信小程序,window事件均不执行,而是返回到了A页面。如果A和B页面站点如果在同一个IP上,是可以执行pagehide事件里的代码返回到微信小程序的。请问为什么跨域名跳转时,B页面上的事件就不执行window事件了呢?
js代码如下。
<script>
var isTouch = false;
window.onload=function(){
window.onunload = function (event) {
wx.miniProgram.navigateBack();
}
window.addEventListener('beforeunload', function (event) {
wx.miniProgram.navigateBack();
});
window.addEventListener("pagehide", function (event) {
wx.miniProgram.navigateBack();
return true;
})
document.body.addEventListener("touchstart", function () {
isTouch = true;
});
if (wx != undefined && wx != null) {
history.pushState({ page: 1 }, null, window.location.href);
window.addEventListener("popstate", (event) => {
wx.miniProgram.navigateBack();
});
}
}
</script>
第一次发现有人这样用。
A跳B的时候,用replace就行了,就不用那么麻烦了。