监听H5页面在微信浏览器异常退出

参考文章

js 复制代码
onBeforeUnmount(() => {
  unNormalExit();
});

//---------------------------异常退出----------------------
function unNormalExit() {
  enterOrExitRoom({
    type: 37,
    roomId: roomId.value,
    userId: userId.value,
    nickName: name.value,
    loginUserType: 2, //0 专家 1员工 2第三方 app登录类型
  }).then(async (res) => {
    await trtc.exitRoom();
    await trtc.stopLocalVideo();
    await trtc.stopLocalAudio();
    // 若后续无需再使用该 trtc,则销毁 trtc,并释放引用。
    trtc.destroy();
  });
  closeWebSocketH5();
}

// 微信浏览器
// ios 的 window.addEventListener("pagehide", function () {}  监听方法内,
// 不支持 ajax,需要通过 navigator.sendBeacon("url",data) 来调后台接口。
if (deviceType == "Android") {
  if (window.addEventListener) {
    document.addEventListener("visibilitychange", async function () {
      //部分手机可以获取到
      if (document.hidden) {
        //用户关闭了安卓页面
        //做关闭页面处理逻辑
        unNormalExit();
      }
    });
  } else if (window.attachEvent) {
    // 主要是为了兼容老的IE
    window.attachEvent("onpagehide", async function () {
      unNormalExit();
    });
  } else {
    window.onbeforeunload = async function () {
      unNormalExit();
    };
  }
} else {
  //苹果:有时会执行closeWebSocket,有时不会,让后台监听心跳断开之后主动调用一次退出
  window.addEventListener(
    "pagehide",
    function () {
      closeWebSocketH5();
      unNormalExit();
      // let data = new Blob(
      //   [JSON.stringify({ gameId: gameId, userId: userid })],
      //   {
      //     type: "application/json; charset=UTF-8",
      //   }
      // );
      // navigator.sendBeacon("/destory", data);
    },
    false
  );
}
相关推荐
winfredzhang1 天前
用 Python + wxPython 打造一个万能网页图片一键下载神器(附完整源码 + 详细解析)
python·微信·pdf·遍历·图片·网页·保存
旭日跑马踏云飞2 天前
一文搞定腾讯开发生态-微信上传图片和视频
微信·serverless
llq_3502 天前
如何用 GitHub Pages 完成企业微信的域名归属认证?(适合没有服务器的开发者)
微信
今天也在研究公众号3 天前
Apple同款SVG,怎么写出来?手写+编辑器,两张方法都能搞定!
微信
开发加微信:hedian1165 天前
短剧小程序开发全攻略:技术选型与实现思路
微信·小程序·架构·aigc·交互
AiXed6 天前
PC微信协议之nid算法
python·网络协议·算法·微信
sg_knight6 天前
微信小程序中 WebView 组件的使用与应用场景
前端·javascript·微信·微信小程序·小程序·web·weapp
悟空码字9 天前
微信小程序管理系统,代运营3600+医院小程序
微信·小程序·编程·软件开发
CaracalTiger10 天前
本地部署 Stable Diffusion3.5!cpolar让远程访问很简单!
java·linux·运维·开发语言·python·微信·stable diffusion