首页 > 解决方案 > 为什么桌面上的 chrome 中有“navigator.maxTouchPoints = 10”?

问题描述

我正在使用用户代理来区分浏览器是在移动设备上还是桌面上。但是,如果我在 Android 浏览器中将设置更改为 pc-mode,用户代理的值将更改为“Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Safari/537.36 ”

为了清楚起见,我应用了 navigator.maxTouchPoints > 0 来确认它是否是移动环境。但桌面上的 chrome 显示 navigator.maxTouchPoints 的值为10。我想知道为什么会这样。有没有其他方法来判断移动设备?

标签: javascriptgoogle-chromeuser-agent

解决方案


如果台式机或笔记本电脑有触摸屏,maxTouchPoints 将显示一个大于零的数字。

您应该测试您想在移动设备上使用或不使用的功能。使用 userAgent 可能会变得谨慎,因为它可以轻松更改,并且您所看到的是用于强制桌面模式的常见技巧。

另请注意,Chrome 尤其希望“减少”用户代理字符串以防止某种指纹识别。 用户代理减少

您可以从类似问题中查看此答案以获取建议: 检测移动设备的最佳方法是什么?


推荐阅读