【问题标题】:How to Detect macOS Big Sur and/or Monterey in JavaScript?如何在 JavaScript 中检测 macOS Big Sur 和/或 Monterey?
【发布时间】:2022-01-10 16:44:12
【问题描述】:

我正在使用 Safari 15.3 运行 macOS Monterey (12.2)。我正在尝试在 Safari(或 Chrome)中使用 JavaScript以编程方式确定安装的 macOS 版本。

当我运行以下命令时:

var nAgt = navigator.userAgent;

我得到以下结果:

Safari

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.3 Safari/605.1.15

谷歌浏览器

Mozilla/5.0(Macintosh;英特尔 Mac OS X10_15_7) AppleWebKit/537.36(KHTML,如 Gecko)Chrome/96.0.4664.110 Safari/537.36

为什么我看到 10_15_7?我不应该在某个地方看到 12_2 吗?

【问题讨论】:

标签: javascript macos macos-monterey


【解决方案1】:

用户代理字符串在未来版本的 Mac OS 和 Windows (11) 中不再可靠。您应该查看 javascript 的客户端提示 API。上下文和未来解决方案的一些参考:

https://www.otsukare.info/2021/02/15/capping-macos-user-agent

https://help.duo.com/s/article/6627?language=en_US

https://web.dev/user-agent-client-hints/

https://browserleaks.com/client-hints

新 API 尚不适用于所有浏览器。因此,在世界赶上之前,检测新操作系统是最好的努力。

【讨论】:

    【解决方案2】:

    感谢@Quentin ...如果我理解正确,似乎无法再通过 UserAgent 获得新 macOS 系统的准确报告。

    • 似乎世界上的大部分人都只是假设它会永远是 macOS 10.xx,因此许多网站无法处理 macOS 11.xx@ 987654323@回复。

    • 似乎还希望为那些可能将操作系统用于邪恶的“指纹识别目的”的人隐藏操作系统的底层细节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-16
      • 2022-01-09
      • 1970-01-01
      • 2021-03-29
      • 1970-01-01
      • 2020-10-22
      • 2021-11-26
      • 2021-02-27
      相关资源
      最近更新 更多