当前位置: 首页 > news >正文

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

参考文章

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) {// 主要是为了兼容老的IEwindow.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);
}

相关文章:

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

参考文章 onBeforeUnmount(() > {unNormalExit(); });//---------------------------异常退出---------------------- function unNormalExit() {enterOrExitRoom({type: 37,roomId: roomId.value,userId: userId.value,nickName: name.value,loginUserType: 2, //0 专家 1…...

Linux 串口编程

目录 前言一、tty体系二、串口硬件基础知识三、Linux下的串口编程3.1 打开串口3.2 从串口读写数据,问题1、2的诞生3.3 关闭串口3.4 串口配置3.4.1 获取/设置串口的参数3.4.2 设置波特率3.4.3 设置控制模式标志3.4.4 设置本地模式标志3.4.5 设置输入模式标志3.4.6 设置输出模式标…...

Adminer源码编译 精简语言中英文和基本使用方法

Adminer是一个小而强悍的基于web的数据库管理工具, 官方默认支持几十种语言,但是对于中国的用户而言只需要有中文和英文就够了,其他语言基本无用。这就需要我们下载Adminer源码自己编译 Adminer.php , 如下图所示 adminer 中英文语言精简版本…...

go 中线程安全map

在 Go 语言中,官方包 sync.Map 确实提供了线程安全的映射数据结构。然而,正如你所提到的,使用 sync.Map 时,有时需要进行类型断言,这可能会让代码显得冗长或不直观。 如果你希望使用一个更加易用的线程安全映射&#…...

eslint 安装与使用-基础教程

中文官网 官方规则解析 规则参考 - ESLint - 插件化的 JavaScript 代码检查工具 eslint ESlint 是一个检查 JS,TS 语法的工具.能够与常用开发工具,例如 VS Code,进行集成并提供错误提示,和可能的修正方法 安装 安装eslint npm init esli…...

自然语言处理的未来愿景

自然语言处理的未来愿景 在这个信息爆炸的时代,计算机如何理解和生成我们日常使用的语言,已经成为一个引人注目的问题。你有没有想过,为什么智能助手能理解你的指令?又或者,为什么社交媒体上的推荐引擎能够精准地推荐你喜爱的内容?这背后,正是自然语言处理(NLP)在发挥…...

等保2.0三级测评华为华三交换机路由器

在使用本博客提供的学习笔记及相关内容时,请注意以下免责声明: 信息准确性:本博客的内容是基于作者的个人理解和经验,尽力确保信息的准确性和时效性,但不保证所有信息都完全正确或最新。 非专业建议:博客中的内容仅供参考,不能替代专业人士的意见和建议。在做出任何重要…...

BA和CS算法中的Levy飞行策略

Levy飞行策略通过模拟自然界中动物的长距离迁徙行为,指导粒子进行更大范围的搜索,有助于算法快速找到全局最优解。它是一种具有独特优势的随机行为策略,模拟随机游走或搜索过程中的步长和方向,其步长的概率分布为重尾分布&#xf…...

PHP:实现两张无关联表数据的联合分页处理方案

前言 在现代软件开发中,高效地处理数据是至关重要的环节。尤其是在使用 PHP 进行开发时,常常会遇到各种复杂的数据处理需求。其中,实现两张无关联表数据的联合分页处理就是一个具有挑战性的任务。这种需求在很多实际应用场景中都可能出现&am…...

【单元测试】单元测试介绍

1 单元测试基础 1.单元测试:单元测试又称模块测试,属于白盒测试,是最小单位的测试。模块分为程序模块和功能模块。功能模块指实现了一个完整功能的模块(单元),一个完整的程序单元具备输入、加工和输出三个…...

PyQt事件机制及其应用

一、实例前置 一个小闹钟应用 创建主窗口类 首先我们创建了一个名为AlarmClock的类,它继承自QMainWindow。这个类将包含我们的GUI组件和逻辑。 from Alarm_clock import Ui_MainWindowclass AlarmClock(QMainWindow):def __init__(self):super().__init__()# 初始化…...

厦门凯酷全科技有限公司抖音电商服务的卓越典范

在短视频和直播带货迅速崛起的时代,厦门凯酷全科技有限公司(以下简称“凯酷全科技”)以其专业的服务、创新的精神以及对市场的深刻理解,在抖音电商领域中脱颖而出,成为众多品牌商家信赖的选择。本文将深入探讨凯酷全科…...

vue3水波柱状图 ,实现

效果图 //引用页面 <div style"height: 60px;background-color: #fff;border-radius: 5px;width: 40px;"><WavePercentage:percentage"progress"primary-color"#ffcb7c"secondary-color"#ffcb7c"/></div>import Wa…...

如何在两台 PostgreSQL 服务器之间使用逻辑复制槽进行数据复制

如何在两台 PostgreSQL 服务器之间使用逻辑复制槽进行数据复制 如何在两台 PostgreSQL 服务器之间使用逻辑复制槽进行数据复制环境准备1. 配置主服务器&#xff08;Publisher&#xff09;1.1 修改 postgresql.conf1.2 修改 pg_hba.conf1.3 重启 PostgreSQL 服务1.4 创建逻辑复制…...

System.Data.OracleClient 需要 Oracle 客户端软件 version 8.1.7 或更高版本

问题1&#xff1a;“/”应用程序中的服务器错误。 System.Data.OracleClient 需要 Oracle 客户端软件 version 8.1.7 或更高版本。 说明: 执行当前 Web 请求期间&#xff0c;出现未经处理的异常。请检查堆栈跟踪信息&#xff0c;以了解有关该错误以及代码中导致错误的出处的详细…...

【机器人】振动分析和控制工具之Bode图

Bode 图完整介绍 Bode 图由两个部分组成&#xff1a; 幅值图 (Magnitude Plot)&#xff1a;描述系统对不同频率输入信号的增益大小&#xff08;幅值响应&#xff09;。相位图 (Phase Plot)&#xff1a;描述系统输出信号相对于输入信号的相位差。 Bode 图的横轴是频率&#x…...

生成:安卓证书uniapp

地址&#xff1a; https://ask.dcloud.net.cn/article/35777 // 使用keytool -genkey命令生成证书&#xff1a; 官网&#xff1a; keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore ----------------------------------…...

酒店/电影推荐系统里面如何应用深度学习如CNN?

【1】酒店推荐系统里面如何应用CNN&#xff1f;具体过程是什么 在酒店推荐系统中应用卷积神经网络&#xff08;CNN&#xff09;并不是一个常见的选择&#xff0c;因为 CNN 主要用于处理具有空间结构的数据&#xff0c;如图像、音频和某些类型的序列数据。然而&#xff0c;在某…...

【CSS in Depth 2 精译_069】11.3 利用 OKLCH 颜色值来处理 CSS 中的颜色问题(上)

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第四部分 视觉增强技术 ✔️【第 11 章 颜色与对比】 ✔️ 11.1 通过对比进行交流 11.1.1 模式的建立11.1.2 还原设计稿 11.2 颜色的定义 11.2.1 色域与色彩空间11.2.2 CSS 颜色表示法 11.2.2.1 RGB…...

Redis篇-6--原理篇5--单线程模型

1、概述 Redis 采用单线程模型来处理客户端请求&#xff0c;这意味着在任意时刻只有一个命令被执行。这种设计简化了 Redis 的实现&#xff0c;并确保了高并发环境下的数据一致性。尽管 Redis 是单线程的&#xff0c;但它通过高效的内存管理和网络 I/O 操作&#xff0c;仍然能…...

你的串口通信稳定吗?STM32CubeMX配置USART1的避坑指南与稳定性测试

STM32串口通信稳定性实战&#xff1a;从配置陷阱到压力测试全解析 当你的嵌入式设备在实验室运行良好&#xff0c;却在现场频繁出现数据丢失或乱码时&#xff0c;问题往往出在那些容易被忽视的细节上。串口通信作为嵌入式系统中最基础的调试与数据交互接口&#xff0c;其稳定性…...

LNG船BOG再液化系统流程优化与动态蒸发率控制【附模型】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导&#xff0c;毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;液氮预冷BOG缓冲再液化系统流程设计与Aspen HYSYS建模…...

5G与4G LTE互操作:无缝衔接,共筑通信新生态

5G与4G LTE互操作&#xff1a;无缝衔接&#xff0c;共筑通信新生态 在移动通信技术日新月异的今天&#xff0c;5G作为新一代通信技术&#xff0c;正逐步融入我们的生活&#xff0c;与4G LTE形成互补共存的局面。5G与4G LTE之间的互操作&#xff0c;不仅关乎用户体验的连续性&am…...

为LLM智能体构建主动防御:Agent Shield架构解析与实战部署

1. 项目概述&#xff1a;Agent Shield 是什么&#xff0c;以及它为何重要 最近在开源社区里&#xff0c;一个名为 agent-shield 的项目引起了我的注意。这个由 Shahar Dagan 发起的项目&#xff0c;直译过来是“智能体护盾”&#xff0c;其核心目标非常明确&#xff1a;为基于…...

SMBus协议深度解析:从基础时序到高级应用

1. SMBus协议基础&#xff1a;从I2C到系统管理总线 第一次接触SMBus时&#xff0c;我误以为它只是I2C的"马甲"。实际调试智能电池项目后才发现&#xff0c;这个1996年由Intel提出的二线制串行总线&#xff0c;在系统管理领域有着独特的价值。简单来说&#xff0c;SMB…...

【2026前沿】LTX 2.3 深度实战:结合 Gemma 4完全体 打造电影级文生视频/图生视频全流程

一、 为什么 LTX 2.3 是 2026 年视频生成的“性价比之王”&#xff1f;LTX 2.3 在保留了上一代高速生成特性的基础上&#xff0c;在 VAE&#xff08;变分自编码器&#xff09; 进行了重构。相比于 LTX 2.0&#xff0c;它的核心优势在于&#xff1a;原生纵向支持&#xff1a;不再…...

AwesomeQRCode源码阅读笔记:深入理解二维码渲染核心技术

AwesomeQRCode源码阅读笔记&#xff1a;深入理解二维码渲染核心技术 【免费下载链接】AwesomeQRCode An awesome QR code generator for Android. 项目地址: https://gitcode.com/gh_mirrors/aw/AwesomeQRCode 想要为你的Android应用添加炫酷的二维码生成功能吗&#xf…...

别再瞎学 C 语言了!真・胎教级入门教程 | NO.3 万字详解分支与循环 | 下篇

欢迎大家来到<<别再瞎学 C 语言了&#xff01;真・胎教级入门教程 | NO.3 万字详解分支与循环>>下篇学习.在上期中我们已经了解了分支与循环中的if语句,关系操作符,条件操作符,逻辑操作符和switch语句.这一期我们继续来了解剩下的内容.6. while循环在C语言中有三种…...

LinkSwift:八大网盘直链下载助手终极指南,告别客户端束缚![特殊字符]

LinkSwift&#xff1a;八大网盘直链下载助手终极指南&#xff0c;告别客户端束缚&#xff01;&#x1f680; 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百…...

【c++面向对象编程】第2篇:类与对象(一):定义第一个类——成员变量与成员函数

目录 一、从一个日常需求开始 二、定义你的第一个类 三、访问修饰符&#xff1a;public、private、protected 举个例子&#xff0c;看看区别&#xff1a; 四、成员变量怎么声明&#xff1f; 五、成员函数&#xff1a;两种实现方式 方式一&#xff1a;类内实现&#xff08…...