navigator.platform可能的值列表是什么?

我知道这种情况经常发生变化,但是navigator.platform返回的可能值是否尽可能详尽?

目前为止列表:

  • HP-UX
  • Linux i686
  • Linux armv7l
  • Mac68K
  • MacPPC
  • MacIntel
  • 在SunOS
  • Win16的
  • Win32的
  • WinCE的
  • 苹果手机
  • iPod的
  • iPad的
  • Android的
  • 黑莓
  • 歌剧

免责声明:请注意,此属性是由浏览器发送,因此可以伪造,就像用户代理string。 永远不要依赖navigator对象来完全准确。

定义

据我所知,没有一个可能的navigator.platform值的公开列表,尽pipe该属性已经存在了很多。 更糟糕的是,这些财产的定义多年来一直在改变。 它曾经是:

navigator.platform表示浏览器编译的机器types。

这基本上意味着即使用户在32位或64位的Windows机器上,当用户运行编译为16位的浏览器时,该属性也可以返回Win16

当然W3Schools列出了旧的定义(我甚至不会连接到他们)。 W3和MDN已经就不同的定义达成一致,

navigator.platform代表浏览器正在执行的平台。

不过,这个定义有点含糊。 十年前,一个“平台”可能是一个CPU架构或一个操作系统。 近年来,手持设备和媒体设备也可以成为平台。

解释

与networking上的所有内容一样,我们的命运掌握在强大的浏览器供应商手中。 在这种情况下,所有主stream浏览器(IE,Safari,Firefox和Chrome)都认为我的64位Windows机器是Win32平台。 这意味着他们坚持到Windows的旧定义,因为它们都没有被编译为64位到目前为止。 然而,看看光明的一面:至less他们都曾经一致认同。

手持设备和媒体设备看起来似乎更幸运。 正如你已经提到的那样,iPhone,iPod和iPad都有独特的价值,尽pipe它们都运行着相同的操作系统。 所有的任天堂和索尼的设备也都返回了独特的价值。 所以只有现在navigator.platform开始看起来很有趣。

但随后iPhone的Opera Mini出现了,再次搞砸了。 Opera Mini实际上会返回一个代码引擎版本号,与迄今为止我们所遇到的任何内容完全不同。 所以现在我们回到了我们开始的地方,我们开始明白为什么在这个问题上有这么less的信息。

即使解释有所不同,我也没有一个完整的答案,我觉得我应该增加我的2美分给那些研究navigator.platform属性的人。

列表

下面是我知道的可以用多个来源validation的值的(绝对不确定的)列表。 由于模糊的定义,我不太清楚订购这些产品的最佳方法是什么。 现在我根据操作系统或设备品牌将它们分成几类,并列出了适用的附加信息和发布date。

Android的

Android设备testing真的很难。 Android设备将像一些Linux版本一样频繁返回Android 。 例如,在Nexus 5手机上,Android浏览器和Chrome都会返回Linux armv7l 。 在极less数情况下,Android设备甚至可以返回null (而不是undefined )。

  • Android (2008)
  • Linux :见上面的注释
  • null

苹果

就iOS而言:Safari,Chrome和Mercury都认同,但Opera会把事情搞砸。

  • iPhone (2007)
  • iPod (2007)
  • iPad (2010)
  • iPhone Simulator :Xcode附带的模拟器
  • iPod Simulator :Xcode附带的模拟器
  • iPad Simulator :Xcode附带的模拟器
  • Macintosh
  • MacIntel :英特尔处理器(2005年)
  • MacPPC :PowerPC处理器
  • Mac68K :68000处理器
  • Pike v7.6 release 92 :任何iPhone上的Opera Mini 5(2009)
  • Pike v7.8 release 517 :任何iPhone上的Opera Mini 7(2012)

黑莓

  • BlackBerry (2003)

FreeBSD的

  • FreeBSD
  • FreeBSD i386 :x86(IA-32)处理器
  • FreeBSD amd64 :AMD x86-64处理器

Linux的

严重不可靠的,因为这么多的平台。 例如,ChromeOS或Linux x86-64上的Chrome都会返回Linux i686因为这是它们编译的内容。

注意Linux ARM列出了体系结构标志,例如armv5tej将表示具有Thumb支持('T'),DSP指令集('E')和Jazelle支持('J')的v5 ARM体系结构。

  • Linux
  • Linux aarch64
  • Linux armv5tejl
  • Linux armv6l
  • Linux armv7l
  • Linux i686
  • Linux i686 on x86_64
  • Linux i686 X11 :基于X11 Window System
  • Linux MSM8960_v3.2.1.1_N_R069_Rev:18 :索尼Xperia V
  • Linux ppc64
  • Linux x86_64
  • Linux x86_64 X11 :基于X11窗口系统

微软

即使在64位的Windows 8上,他们也都坚持使用Win32

  • OS/2 (1994†)
  • Pocket PC
  • Windows
  • Win16 :Windows 3.1x(1992†)
  • Win32 :Windows 95及以上
  • WinCE

Mozilla的

在Firefox OS上返回一个空string。 看到这个错误报告 。

任天堂

  • New Nintendo 3DS (2014)
  • Nintendo DSi (2008)
  • Nintendo 3DS (2011)
  • Nintendo Wii (2006)
  • Nintendo WiiU (2012)

OpenBSD系统

  • OpenBSD amd64

Symbian / S40

  • Nokia_Series_40 (1999†)
  • S60 (2002†)
  • SymbianSymbian Opera
  • Symbian OS

棕榈

  • PalmOS (1996)
  • webOS (2009)

的Solaris

  • SunOS
  • SunOS i86pc
  • SunOS sun4u :SPARC处理器

索尼

  • PLAYSTATION 3 (2006)
  • PlayStation 4 (2013)
  • PSP :PlayStation Portable(2004)

各个

  • HP-UX :Hewlett-Packard UniX
  • masking-agent :在使用Firefox的屏蔽代理时,值会更改
  • WebTV OS
  • X11 :X11窗口系统

有一个不在这个列表中的设备? 请留下评论,列出您的设备的属性和navigator.platform值(随意使用此JSFiddlefind值)。

希望这可以帮助。

我可以添加到这个列表中,为我testing过的特定设备定义了一些值。

如果string是Linux armv7lLinux armv7l小写字母L结尾(对于Linux,大概是?),而不是一个数字1或小写I

对于iOS设备,testing在Safari中执行。 对于Android设备,在股票浏览器中进行testing,如果没有安装股票浏览器,则为Chrome。

在Windows平板电脑设备中,诺基亚Lumia使用IE 11.0.9600.16476运行Windows RT 8.1,MS Surface使用IE 11.0.9600.16438运行Windows 8.1 Pro。

在Windows手机设备中,诺基亚Lumia运行的是Windows Phone 8.1和IE 11。

手机

 Device OS window.navigator.platform --------------------------------------------------------------------------- iPhone 4 iOS 7.1 iPhone iPhone 5 iOS 7.1.1 iPhone iPhone 5c iOS 7.1 iPhone iPhone 5s iOS 7.1 iPhone Samsung Galaxy S2 Android 4.1.2 Linux armv7l Samsung Galaxy S3 Mini Android 4.1.2 Linux armv7l Samsung Galaxy S3 Android 4.3 Linux armv7l Samsung Galaxy S4 Android 4.4.2 Linux armv7l Samsung Galaxy Note 3 Android 4.4.2 Linux armv7l Samsung Galaxy S6 Android 5 Linux aarch64 Nexus 4 Android 4.4.2 Linux armv7l Nexus 5 Android 4.4.2 Linux armv7l HTC One Android 4.4.2 Linux armv7l Sony Xperia Z Android 4.2.2 Linux armv7l Motorola Moto G Android 4.4.2 Linux armv7l Nokia Lumia 1520 Windows 8.1 Win32 

 Device OS window.navigator.platform --------------------------------------------------------------------------- iPad 2nd generation iOS 6.1.3 iPad iPad 2nd generation iOS 7.0.3 iPad iPad 4th generation iOS 6.1.2 iPad iPad 4th generation iOS 6.1.3 iPad iPad mini (non retina) iOS 6.1.3 iPad iPad mini (retina) iOS 7.0.3 iPad Samsung Galaxy Tab 2 7" Android 4.0.3 Linux armv7l Samsung Galaxy Tab 3 7" Android 4.1.2 Linux armv7l Samsung Galaxy Tab 3 Android 4.2.2 Linux i686 Samsung Galaxy Note 10.1 (2012) Android 4.1.2 Linux armv7l Samsung Galaxy Note 10.1 (2014) Android 4.3 Linux armv7l Nexus 7 (2012) 7" Android 4.4.3 Linux armv7l Nexus 7 (2013) 7" Android 4.3 Linux armv7l Nexus 10 Android 4.4.2 Linux armv7l Lenovo Yoga Android 4.2.2 Linux armv7l Sony Xperia Z Android 4.3 Linux armv7l Tesco Hudl 7" Android 4.2.2 Linux armv7l Kindle Fire 7" (2012) Unknown Linux armv7l Kindle Fire HDX 7" (2013) Unknown Linux armv7l Asus Transformer Pad TF300T Android 4.0.3 Linux armv7l Nokia Lumia 2520 Windows RT 8.1 Win32 MS Surface Tablet Pro Windows 8.1 Pro Win64 Desktop PC (HP) Windows 7 Ent. Win32 Desktop PC (iMac) OSX 10.8.5 MacIntel 

我无法发表评论,所以我离开这些我认为不是上面提到的:

 +-----+--------------+--------------------------------------+ | iid | item | value | +-----+--------------+--------------------------------------+ | 448 | nav_platform | Linux armv7l | | 454 | nav_platform | ARM | | 455 | nav_platform | Linux x86_64 | | 457 | nav_platform | PlayStation 4 | | 459 | nav_platform | masking-agent | | 460 | nav_platform | OpenBSD amd64 | | 464 | nav_platform | FreeBSD amd64 | | 465 | nav_platform | Linux armv5tejl | | 466 | nav_platform | Symbian OS | | 467 | nav_platform | New Nintendo 3DS | | 470 | nav_platform | Linux armv6l | | 471 | nav_platform | FreeBSD | | 472 | nav_platform | Symbian | | 473 | nav_platform | Linux MSM8960_V3.2.1.1_N_R069_Rev:18 | | 476 | nav_platform | Linux aarch64 | | 479 | nav_platform | Linux i686 on x86_64 | | 480 | nav_platform | Linux ppc64 | +-----+--------------+--------------------------------------+ 

“掩蔽代理”是一种浏览器隐私扩展,默认情况下将平台更改为该平台。

奇怪的长期索尼Z10