如何识别不同机型并对其进行兼容

发布时间:2024年01月11日

User-Agent是HTTP请求头中的一部分,用于标识发送请求的用户代理(通常是浏览器)。生成User-Agent的规则通常包括以下内容:

  1. 浏览器名称和版本号:标识所使用的浏览器,如Chrome、Firefox或Safari,以及其具体版本号。
  2. 操作系统信息:包括操作系统类型和版本,如Windows、Mac OS X、iOS或Android。
  3. 设备类型:标识设备类型,如PC、手机或平板电脑。
  4. 其他信息:可能包括语言偏好、硬件类型等其他相关信息。
    生成User-Agent的规则可以根据不同的软件和网络请求库而有所不同,但通常遵循上述基本内容。

‘Mozilla/5.0 (Linux; Android 10; CDY-AN90 Build/HUAWEICDY-AN90; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/109.0.5414.86 MQQBrowser/6.2 TBS/046905 Mobile Safari/537.36 V1_AND_SQ_9.0.15_0_RDM_B QQ/9.0.15.315192 NetType/WIFI WebP/0.3.0 AppId/537201424 Pixel/1080 StatusBarHeight/108 SimpleUISwitch/0 QQTheme/1000 StudyMode/0 CurrentMode/0 CurrentFontScale/1.0 GlobalDensityScale/0.90000004 AllowLandscape/false InMagicWin/0 EnableQUICheck/0’

user-agent的信息中每一个分别代表什么含义?
以下是您提供的用户代理字符串的细分:

  1. Mozilla/5.0:这是许多浏览器使用的标准标识符,表示该浏览器与 Mozilla 兼容(尽管不一定与组织相关)。
  2. (Linux;Android 10;CDY-AN90 Build/HUAWEICDY-AN90;wv):本节提供有关操作系统和设备的信息。 在这种情况下,表明该设备在 HUAWEI CDY-AN90 设备上运行 Android 10。
  3. AppleWebKit/537.36(KHTML,如 Gecko):这部分代表浏览器使用的渲染引擎,在本例中为 WebKit。
  4. Version/4.0 Chrome/109.0.5414.86:这表示浏览器版本,在本例中为 109.0.5414.86。 它还引用了 Chrome 浏览器。
  5. MQQBrowser/6.2:显示正在使用QQ浏览器。
  6. TBS/046905:可以指腾讯浏览器。
  7. Mobile Safari/537.36:这表明该浏览器是Safari的移动版本。
  8. V1_AND_SQ_9.0.15_0_RDM_B:这部分可能特定于QQ浏览器,可能包含版本或构建信息。
  9. QQ/9.0.15.315192:代表QQ应用版本号。
  10. NetType/WIFI:表示网络类型,本例为WIFI。
  11. WebP/0.3.0:表示支持WebP图像格式0.3.0版本。
  12. AppId/537201424:这可能是指应用程序的唯一标识符。
  13. Pixel/1080:指定设备的屏幕分辨率。
  14. StatusBarHeight/108:表示状态栏的高度。
  15. SimpleUISwitch/0:这可以指 UI 设置。
  16. QQTheme/1000:表示QQ应用内使用的主题。
  17. StudyMode/0:这可能表示应用程序内的学习模式。
  18. CurrentMode/0:可以指应用程序的当前模式。
  19. CurrentFontScale/1.0:表示当前使用的字体比例。
  20. GlobalDensityScale/0.90000004:表示全局密度比例。
  21. AllowLandscape/false:表示是否允许横向模式。
  22. InMagicWin/0:这可能指应用程序中的特定功能。
  23. EnableQUICheck/0:表示是否启用快速UDP互联网连接(QUIC)。

以上的信息虽然不能都搞明白,但是我们可以通过第2条信息知道,这里是关于操作系统的能力;

‘Mozilla/5.0 (Linux; Android 8.0.0; BKL-AL20 Build/HUAWEIBKL-AL20; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/60.0.3112.116 Mobile Safari/537.36 V1_AND_SQ_9.0.15_0_RDM_B QQ/9.0.15.315259 NetType/WIFI WebP/0.4.1 AppId/537201424 Pixel/1080 StatusBarHeight/73 SimpleUISwitch/0 QQTheme/1000 StudyMode/0 CurrentMode/0 CurrentFontScale/1.0 GlobalDensityScale/0.90000004 AllowLandscape/false InMagicWin/0 EnableQUICheck/0’
荣耀V10
在这里插入图片描述

‘Mozilla/5.0 (Linux; Android 10; PACM00 Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/109.0.5414.86 MQQBrowser/6.2 TBS/046905 Mobile Safari/537.36 V1_AND_SQ_9.0.15_0_RDM_B QQ/9.0.15.90707 NetType/WIFI WebP/0.3.0 AppId/537201424 Pixel/1080 StatusBarHeight/97 SimpleUISwitch/0 QQTheme/1000 StudyMode/0 CurrentMode/0 CurrentFontScale/1.0 GlobalDensityScale/0.90000004 AllowLandscape/false InMagicWin/0 EnableQUICheck/0’
OPPO R15
在这里插入图片描述
HONOR 30S
Mozilla/5.0 (Linux; Android 10; CDY-AN90 Build/HUAWEICDY-AN90; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/109.0.5414.86 MQQBrowser/6.2 TBS/046905 Mobile Safari/537.36 V1_AND_SQ_9.0.15_0_RDM_B QQ/9.0.15.315192 NetType/WIFI WebP/0.3.0 AppId/537201424 Pixel/1080 StatusBarHeight/108 SimpleUISwitch/0 QQTheme/1000 StudyMode/0 CurrentMode/0 CurrentFontScale/1.0 GlobalDensityScale/0.90000004 AllowLandscape/false InMagicWin/0 EnableQUICheck/0
在这里插入图片描述
iphone8plus
‘Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 QQ/9.0.15.62754_8a610f26eee_01-10_07:38_CheckIn V1_IPH_SQ_9.0.15_0_RDM_R Pixel/1080 MiniAppEnable SimpleUISwitch/0 StudyMode/0 CurrentMode/0 CurrentFontScale/1.000000 QQTheme/1000 AppId/537200874 EnableQUICheck/0 Core/WKWebView Device/Apple(iPhone 8Plus) NetType/WIFI QBWebViewType/1 WKType/1’
苹果的暂不清楚关于系统如何识别,但有后缀Device/Apple(iPhone 8Plus)

可以尝试从这个角度进行机型识别;实际上,任何一个互联网公司都有一套识别不同机型,确认机型占比的上报记录,有一套识别机型的规范,具体细节没有了解到,如果你能拿到这个信息就更好了。

还有一个npm包,device-detect,但是感觉并不难给出具体机型;

文章来源:https://blog.csdn.net/qq_34425377/article/details/135522563
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。