欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

UA Detect

发布时间:2025/5/22 编程问答 26 豆豆
生活随笔 收集整理的这篇文章主要介绍了 UA Detect 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

2019独角兽企业重金招聘Python工程师标准>>>

开始之前

在以前很长一段时间里, 为了做前端的浏览器兼容而去利用 UA 判定浏览器类型(特别是IE)是很常见的
但如今都提倡利用 Features Detection 来处理兼容的问题, UA 判定的工作越来越少了
角度转换一下, 现在不是为了做特性的兼容, 而是为了业务的兼容, 这类业务的兼容尤为多
我们需要给用户一个 APP 下载的二维码, 而不单独列出各平台的下载链接
二维码只有一个, 跳到一个介绍页, 下载跳转按钮只有一个
需要对 Android 和 iOS 平台做区分
由于 QQ 和 微信 内的 WebView 有下载限制, 所以这里也需要做特殊处理

各类参考

NavigatorID.userAgent - Web API 接口| MDN
浏览器野史 UserAgent列传(上)
浏览器野史 UserAgent列传(下)
MYIP.MS
其他人的收集1
其他人的收集2

收集到的信息

多数的信息都是自己收集的, 设备没那么多, 所以不太全, 顾及了常用的
少部分是引用自上面的参考, 如 360SE 和 360EE, 360被公司封锁了
自己也懒得去安装那么多浏览器测试

// Ubuntu 16.04 Chrome Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36 // Ubuntu 16.04 Firefox Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0// Mac OS X Safari Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/601.4.4 (KHTML, like Gecko) Version/9.0.3 Safari/601.4.4 // Mac OS X Chrome Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36 // Mac OS X Firefox Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:43.0) Gecko/20100101 Firefox/43.0// Windows 10 Chrome Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36 // Windows 10 Firefox Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0 // Windows 10 Edge Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586 // Windows 10 IE11 Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko // 下面是模拟出来的结果 // Windows 10 IE10 Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0) // Windows 10 IE9 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) // Windows 10 IE8 Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0) // Windows 10 IE7 Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0) // Windows 10 IE6 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) // Windows 8.1 Chrome Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36 // Windows 8.1 IE11 Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; rv:11.0) like Gecko // Windows 8.1 LBBROWSER Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Safari/537.36 LBBROWSER // Windows 8.1 LBBROWSER IE Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; LBBROWSER; rv:11.0) like Gecko // Windows 8.1 360SE - Chrome Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML like Gecko) Chrome/31.0.1650.63 Safari/537.36 QIHU 360SE // Windows 8.1 360SE - IE Mozilla/5.0 (compatible; MSIE 11.0; Windows NT 6.3; Trident/7.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; WebMoney Advisor; 360SE)// Windows 7 Chrome Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36 // Windows 7 IE11 Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko // Windows 7 UC - IE Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0; UBrowser/5.6.12860.10) like Gecko // Windows 7 UC - Chrome Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 UBrowser/5.6.12860.10 Safari/537.36 // Windows 7 360EE Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11 QIHU 360EE// 以下是移动端的 // Nexus5X QQ Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MTC19T; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/50.0.2661.86 Mobile Safari/537.36 V1_AND_SQ_6.3.0_348_YYB_D QQ/6.3.0.2730 NetType/WIFI WebP/0.4.1 Pixel/1080 // Nexus5X WX Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MTC19T) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile MQQBrowser/6.2 TBS/036519 Safari/537.36 MicroMessenger/6.3.16.64_r75b3df2.780 NetType/WIFI Language/zh_CN // Nexus5X Chrome Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MTC19T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.89 Mobile Safari/537.36// iPhone 6s QQ Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13F69 QQ/6.3.5.437 V1_IPH_SQ_6.3.5_1_APP_A Pixel/750 Core/UIWebView NetType/WIFI Mem/38 // iPhone 6s WX Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13F69 MicroMessenger/6.3.16 NetType/WIFI Language/zh_CN // iPhone 6s Safari Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13F69 Safari/601.1 // iPhone 6s UC Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X; zh-CN) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/13F69 UCBrowser/10.9.15.793 Mobile// iPhone 6 QQ Mozilla/5.0 (iPhone; CPU iPhone OS 9_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13E233 QQ/6.3.5.437 V1_IPH_SQ_6.3.5_1_APP_A Pixel/750 Core/UIWebView NetType/WIFI Mem/160 // iPhone 6 WX Mozilla/5.0 (iPhone; CPU iPhone OS 9_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13E233 MicroMessenger/6.3.16 NetType/WIFI Language/zh_CN // iPhone 6 Safari Mozilla/5.0 (iPhone; CPU iPhone OS 9_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13E233 Safari/601.1 // iPhone 6 QQ Browser Mozilla/5.0 (iPhone 6; CPU iPhone OS 9_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/6.0 MQQBrowser/6.7 Mobile/13E233 Safari/8536.25 MttCustomUA/2// MI 4 QQ Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; MI 4LTE Build/KTU84P) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.4 TBS/025489 Mobile Safari/533.1 V1_AND_SQ_6.3.3_358_YYB_D PA QQ/6.3.3.2755 NetType/WIFI WebP/0.3.0 Pixel/1080 // MI 4 WX Mozilla/5.0 (Linux; Android 4.4.4; MI 4LTE Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile MQQBrowser/6.2 TBS/036215 Safari/537.36 MicroMessenger/6.3.18.800 NetType/WIFI Language/zh_CN // MI 4 Chrome Mozilla/5.0 (Linux; Android 4.4.4; MI 4LTE Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.95 Mobile Safari/537.36 // MI 4 UC Mozilla/5.0 (Linux; Android 4.4.4; MI 4LTE Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36 UCBrowser/10.0.0.538 // MI 4 QQ browser Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; MI 4LTE Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/37.0.0.0 MQQBrowser/6.4 Mobile Safari/537.36// 以下是模拟的 // Ubuntu 16.04 Chrome - iPhone4 Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 // Ubuntu 16.04 Chrome - iPhone5 Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 // Ubuntu 16.04 Chrome - iPhone6 Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 // Ubuntu 16.04 Chrome - iPhone6 plus Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 // Ubuntu 16.04 Chrome - iPad Mozilla/5.0 (iPad; CPU OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 // Ubuntu 16.04 Chrome - iPad Mini Mozilla/5.0 (iPad; CPU OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1// Ubuntu 16.04 Chrome - Nexus6P ??? Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36 // Ubuntu 16.04 Chrome - Nexus6 Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36 // Ubuntu 16.04 Chrome - Nexus5X ??? Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36 // Ubuntu 16.04 Chrome - Nexus5 Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36 // Ubuntu 16.04 Chrome - Nexus7 Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Safari/537.36 // Ubuntu 16.04 Chrome - Nexus10 Mozilla/5.0 (Linux; Android 4.3; Nexus 10 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Safari/537.36// Ubuntu 16.04 Chrome - Galaxy S5 Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36 // Ubuntu 16.04 Chrome - Galaxy S3 Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 // Ubuntu 16.04 Chrome - Galaxy Note3 Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30// Ubuntu 16.04 Chrome - Microsoft Lumia 950 Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263 // Ubuntu 16.04 Chrome - Microsoft Lumia 550 Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263

分析结果

如果只是要简单地处理下, 并不在乎大小, 那么到 github 上找找就好, 比如这个:
hgoebl/mobile-detect.js
faisalman/ua-parser-js
这些库里常常会收集了很多 UA 的特性, 功能可以说很完善, 但也常常跟不上设备更新的速度

而很多时候, 我们并不需要那么大而全的工具, 偏向于自己简单地处理下

###总结一些关键字 Windows NT
Windows NT 10.0 : Windows 10
Windows NT 6.3 : Windows 8.1 Windows NT 6.2 : Windows 8
Windows NT 6.1 : Windows 7
Windows NT 6.0 : Windows Vista
Windows NT 5.2 : Windows 2003
Windows NT 5.1 : Windows XP
Windows NT 5.0 : Windows 2000

userAgent = appCodeName/appVersion number (Platform; Security; OS-or-CPU; Localization; rv: revision-version-number) product/productSub Application-Name Application-Name-version

Security
N: 表示无安全加密
I: 表示弱安全加密
U: 表示强安全加密

###判断 Android 最明显的是利用关键字: "Android"
可是看细致了会发现 Windows Phone 的 UA 也会加入 "Android" 关键字
所以得过滤掉 Windows Phone

const ua = navigator.userAgent.toLowerCase(); //let isAndroid = /android/i.test(ua)

###判断 iOS

转载于:https://my.oschina.net/keywindy/blog/686514

总结

以上是生活随笔为你收集整理的UA Detect的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。