javascript - 为什么桌面上的 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。我想知道为什么会这样。有没有其他方法来判断移动设备?
解决方案
如果台式机或笔记本电脑有触摸屏,maxTouchPoints 将显示一个大于零的数字。
您应该测试您想在移动设备上使用或不使用的功能。使用 userAgent 可能会变得谨慎,因为它可以轻松更改,并且您所看到的是用于强制桌面模式的常见技巧。
另请注意,Chrome 尤其希望“减少”用户代理字符串以防止某种指纹识别。 用户代理减少
您可以从类似问题中查看此答案以获取建议: 检测移动设备的最佳方法是什么?
推荐阅读
- kubernetes - 如何横向扩展已创建的作业?
- python - 解析器 BS4 写入文件
- laravel-mix - 如何使用 Laravel Mix 定义编译文件的目录
- javascript - 为什么 Chrome V8 JavaScript 引擎将“TG-1”到“TG-12”识别为有效日期/时间?
- python - 如何使用关键字和索引提取子字符串?
- r - 如何使用 dcast 更改列名?
- python - 如何使用 Python 和 Pandas 从 Salesforce 的有序字典层次结构中提取数据
- php - 为什么 OpenCart 管理面板设计上的授权逻辑会像这样(奇怪)?
- amazon-web-services - Cloudformation:错误:成员的长度必须小于或等于 20
- github - 如何将不同的 GitHub 包安装到我的网站