H5根据浏览器内核判断并区分微信、QQ和QQ浏览器
2024-09-22 18:05:48
项目中碰到这样一个需求点,在h5页面区分当前所处客户端环境是QQ客户端、微信客户端还是QQ浏览器客户端,并做不同的逻辑处理
首先可以通过 window.navigator.userAgent 获取到当前页面浏览器内核信息
经过一系列踩坑之后总结发现三者的内核信息区别
// 微信 : MicroMessenger MQQBrowser NetType
// QQ : MQQBrowser(注:ios中无此信息,替换为QBWebView) NetType
// QQ浏览器: MQQBrowser
由此可见只有微信的webview中有可明显区分的信息(MicroMessenger)
function env() {
let userAgent = window.navigator.userAgent;
let inWeChat = userAgent.indexOf('MicroMessenger');
let androidBrowser= userAgent.indexOf('MQQBrowser');
let iosBrowser= userAgent.indexOf('QBWebView');
let netType= userAgent.indexOf('netType');
if (inWeChat > -1) {
// 微信有单独标识先判断微信
return 'weChat'
}
if (netType > -1 && (androidBrowser > -1 || iosBrowser > -1)) {
// QQ中有nettype信息
return 'QQ'
}
if (androidBrowser > -1 || iosBrowser > -1) {
// 最后再判断QQ浏览器
return 'QQBrowser'
}
return '';
}
上面方法即可区分出当前webview在QQ、微信还是QQ浏览器
要注意的一点就是安卓和ios中的QQ客户端的webview内核信息有点区别,上面有注明
最新文章
- 用hibernate tools生成对应的sql应用代码
- HDU 1796How many integers can you find(容斥原理)
- mysql内存使用以及优化中需要的几点注意
- 使用spring手动获取Bean的时候,不能强转回它自己。
- <;Oracle Database>;后台进程
- iOS出现<;object returned empty description>;的解决方法
- ExtjsMVC开发过程中遇到的具体问题总结
- suse linux环境变量设置
- VIM Taglist安装配置和使用
- OpenXmlSdk导出Excel
- SiteMesh
- 举例说,在命令模式(Command Pattern)
- switch条件语句规则
- linux下安装Mysql 以及导入数据库
- Java 第九周总结
- 201521123025《java程序设计》第13周学习总结
- qt 移植到开发板
- 学号:201621123032 《Java程序设计》第12周学习总结
- 【RL-TCPnet网络教程】第38章	 TFTP简单文件传输基础知识
- 是程序员,就用python导出pdf
热门文章
- Android进程的so注入--Poison(稳定注入版)
- ZOJ3261并查集逆向处理
- Day005 for循环
- HTML中的JavaScript
- 敏杰开题——软工团队项目选择与NABCD分析
- 6.注册CRT 以及SecureCRT访问
- powercli The SSL connection could not be established, see inner exception. 问题解决
- mysqldMY-010457] [Server] --initialize specified but the data directory has files in it. Aborting. 2020-12
- python上下文管理协议,即with的详细使用
- 寻找CPU使用率高的进程方法