监听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
  );
}
相关推荐
Eddyp7 小时前
避开溢价!艾默生 TREX2 手操器省钱选型攻略
网络·其他·百度·微信·微信公众平台·新浪微博
leeyi1 天前
erlang_pay 日元没有“分“,退款要带流水号:支付代码里两条要命的规矩
微信·erlang·支付宝
leeyi1 天前
erlang_pay 先验章,再拆包:支付回调的验签到底在防什么
微信·erlang·支付宝
微信开发api7 天前
微信iPad协议怎么用?基于协议的二次开发实践
微信·机器人·ipad
wechatbot8887 天前
极客互动企业微信 SCRM 自动运营平台效果实测
java·微信·企业微信·rpa
懂软件的胡子个哥7 天前
微信机器人为什么需要“回复候选”而不是所有 AI 内容直接发送
运维·微信·自动化·wechatapi·个人微信号二次开发
微信开发api7 天前
微信机器人接口:REST API vs WebSocket 选型建议
微信·机器人·ipad
极客互动API7 天前
极客互动-企业微信基于外部API接口实现AI客服自动接管外部联系人消息收发
java·微信·企业微信·ai编程·rpa
随性而行3607 天前
企业微信二次开发实战:基于企业微信API构建自动化营销触达系统
微信
前端小白乘风8 天前
VS Code 终于能连微信了!发现一个硬核开源神仙插件:WeChat AHP
微信·visual studio code·deepseek