2017-04-08 102 views
0

我在不同的Mac OS版本中有一个应用程序 - 一个用于el Capitan,一个用于所有操作系统版本。我可以从用户代理获取Mac OS版本吗?

用户(不幸)并不总是知道他们在el Cap或Sierra上,并且很难搞清楚。

在我的下载页面上,我想向他们展示(如果可能)下载哪个版本,因此我想使用用户代理字符串来执行此操作。

它似乎可以包含像“英特尔Mac OS X 10_12_3”这样的短语 - 这是可靠的还是有标准的呢?无法在Apple.com上找到它。如果是 - 我可以从哪种形状确定?

+0

https://www.whatismybrowser.com/developers/tools/user-agent-parser/browse/operating-system-name/mac-os-x-user-agents – Barmar

+0

谢谢 - 看到了,但它是非常过时并不再维护 – user1914292

+0

每个浏览器的格式都不同,正如您可以从该网站的表格中看到的一样。 – Barmar

回答

1

我建议你匹配正则表达式

/OS X 10[_.](\d+)/ 

有些浏览器使用_到OS X版本的部分分开,而其他人使用.,这将匹配格式。捕获组将包含OS X主版本号。如果是11或更高,那么他们应该使用El Capitan版本。

+0

谢谢 - 听起来不错 - 我会检查一下。我不确定是否总是发送这个部分,或者是否有不同的版本(如。和下划线)。 – user1914292

+0

你不能总是依靠用户代理,因为用户可以欺骗它。但是,如果你与天真的用户打交道,而且他们不使用异国情调的浏览器,它应该非常可靠。 – Barmar

相关问题