【发布时间】:2021-03-16 16:40:38
【问题描述】:
有没有办法在 JavaScript 中检测 Apple Silicon Mac?navigator 中的属性似乎不是很有帮助,例如,navigator.platform 设置为 MacIntel 和用户代理完全相同。
原因部分:我有两个可用的软件版本,分别用于 Intel 和 Apple Silicon。询问用户“你的 Mac 是 Apple Silicon 还是 Intel?”不是很好。
【问题讨论】:
-
我不是 Mac 用户,但您不能提供“通用二进制文件”吗?这样一来,用户的 Mac 拥有什么 CPU 就无关紧要了。
-
有趣的是,Chrome 的下载页面确实询问用户他们拥有什么芯片(Apple 或 Intel)。不过,我认为 Chrome 的下载可能是通用二进制文件,因此可能无关紧要。 support.google.com/chrome/answer/95346(查看“Mac”,然后“检查您的 Mac 配置”)
-
Electron 不提供通用二进制文件,动机如下:electronjs.org/blog/apple-silicon
-
Chrome 只下载安装程序,它会检查架构,然后根据它获取实际的东西。对于简单的应用程序,这种方法有点矫枉过正。
-
通过 WebGL 渲染器进行检测目前仅作为 Chrome 功能运行,因为浏览器正试图避免检测到平台。我在这里为它制作了一个测试页面:browserstrangeness.github.io/detect_mac.gpu.htm 和一个镜像:browserstrangeness.bitbucket.io/detect_mac.gpu.htm(我很确定 Google 也不打算将其作为使用 Chrome 进行平台检测的方法。)
标签: javascript browser user-agent apple-silicon