收藏
回答

webview点击左上角的返回没有调用window事件,是webview的bug吗?

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.miniProgram.navigateBack(); 微信iOS客户端 8.0.54 3.7.1

问题描述:小程序使用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>

最后一次编辑于  12-06
回答关注问题邀请回答
收藏

1 个回答

  • hello world
    hello world
    12-06

    第一次发现有人这样用。

    A跳B的时候,用replace就行了,就不用那么麻烦了。

    12-06
    有用
    回复
登录 后发表内容