Chrome移动端模式下UserAgent无法识别真实设备,如何获取真实设备信息?
Chrome移动端模拟模式下获取真实设备信息的方法
直接在DevTools里查看真实设备信息
- 打开DevTools后点击右上角的设置图标(⚙️),进入Settings页面并切换到About标签,这里会显示Chrome实际运行的系统(比如Windows 11、macOS)、Chrome版本等真实设备核心信息
- 也可以在Console面板中执行
navigator.platform命令,返回的是真实设备的平台标识——比如Win32对应Windows系统,MacIntel对应Intel芯片的Mac,这个值不会被移动端模拟模式修改
网页代码中获取真实设备信息的技巧
移动端模拟模式仅会篡改navigator.userAgent,但以下API不受模拟影响,可用来获取真实设备数据:
navigator.platform:直接返回真实操作系统的平台字符串,比如Linux x86_64、Win64、MacAppleSiliconnavigator.hardwareConcurrency:返回真实设备的CPU核心数,模拟模式不会改动这个值navigator.deviceMemory:返回真实设备的内存容量(单位为GB),同样不受模拟影响- 还可以通过
window.screen的真实分辨率(关闭模拟模式时的尺寸)结合window.devicePixelRatio的真实值推断设备类型,不过需要先关闭模拟模式获取一次相关数据,或者通过对比模拟前后的参数差异来判断
注意事项
- 移动端模拟模式仅修改UA、视口、屏幕尺寸等表层参数,真实设备的硬件/系统底层信息不会被完全覆盖
- 不要依赖
navigator.userAgent做真实设备识别,优先使用上述未被篡改的API - 如果需要判断是否处于模拟模式,可以对比
navigator.userAgent和navigator.platform的匹配度——比如UA显示为iPhone但platform是Win32,即可判定当前处于模拟状态
内容的提问来源于stack exchange,提问作者Phanthakan T
相关产品推荐
相关产品推荐

