Javascript 截至今天,navigator.platform的可能值列表是什么?

Javascript 截至今天,navigator.platform的可能值列表是什么?,javascript,Javascript,我知道这种情况经常发生变化,但是否有一个尽可能详尽的列表,列出了navigator.platform返回的可能值 迄今为止的清单: HP-UX Linux i686 Linux armv7l Mac68K MacPPC 麦因特尔 苏诺斯 Win16 Win32 畏缩 iPhone iPod iPad 安卓 黑莓 歌剧院 免责声明:请注意,此属性是由浏览器发送的,因此可能被伪造,就像用户代理字符串一样。切勿依赖导航器对象使其完全准确 定义 据我所知,没有一个列出所有可能的“navigator.p

我知道这种情况经常发生变化,但是否有一个尽可能详尽的列表,列出了
navigator.platform
返回的可能值

迄今为止的清单:

  • HP-UX
  • Linux i686
  • Linux armv7l
  • Mac68K
  • MacPPC
  • 麦因特尔
  • 苏诺斯
  • Win16
  • Win32
  • 畏缩
  • iPhone
  • iPod
  • iPad
  • 安卓
  • 黑莓
  • 歌剧院

免责声明:请注意,此属性是由浏览器发送的,因此可能被伪造,就像用户代理字符串一样。切勿依赖
导航器
对象使其完全准确

定义 据我所知,没有一个列出所有可能的“navigator.platform”值的公共列表,尽管该属性已经存在了相当长一段时间。更糟糕的是,这些年来,房产的定义发生了变化。过去是:
navigator.platform
表示为其编译浏览器的机器类型

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

当然,W3Schools列出了旧的定义(我甚至不想链接到它们)。并同意了一个不同的定义:

navigator.platform
表示执行浏览器的平台

尽管如此,这个定义还是有点模糊。十年前,“平台”要么是CPU架构,要么是操作系统。近年来,手持设备和媒体设备也可以成为平台


解读 与网络上的一切一样,我们的命运掌握在强大的浏览器供应商手中。在这种情况下,所有主要浏览器(如Safari、Firefox和Chrome)都同意我的64位Windows机器是一个“Win32”平台。这意味着,对于Windows来说,它们都坚持旧的定义,因为到目前为止,它们都没有针对64位进行编译。但要看到好的一面:至少他们在某件事上达成了一致。 在手持设备和媒体设备方面,我们似乎更幸运一些。正如你在问题中已经提到的,iPhone、iPod和iPad都有独特的价值,尽管它们都运行相同的操作系统。任天堂和索尼的所有设备也在回归独特的价值。所以直到现在,
navigator.platform
才开始变得有趣起来

但随后iPhone版的Opera Mini又出现了,把事情搞砸了。Opera Mini实际上返回了一个代码引擎版本号,这是对
平台的一种完全不同的解释,与我们迄今为止遇到的任何东西都不同。现在我们回到了我们开始的地方,我们开始理解为什么关于这个主题的信息如此之少

尽管解释各不相同,我也没有一个完整的答案给你,但我确实觉得我应该为研究
navigator.platform
属性的其他人加上2美分


名单 下面是我所知道的可以通过多个来源验证的值的列表(绝对不确定)。由于定义模糊,我不太确定订购这些产品的最佳方式是什么。目前,我根据操作系统或设备品牌将它们分为几个类别,并在适当的地方列出了附加信息和发布日期。 Android

对Android设备进行测试真的很难。Android设备返回Android的频率与某些版本的Linux相同。例如,在Nexus 5手机上,Android浏览器和Chrome都返回
Linux armv7l
。在极少数情况下,Android设备甚至可以返回
null
(而不是
undefined

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

就iOS而言:Safari、Chrome和Mercury都同意,但Opera把事情搞砸了

  • iPhone
    (2007)
  • iPod
    (2007)
  • iPad
    (2010)
  • iPhone模拟器
    :模拟器随Xcode一起提供
  • iPod模拟器
    :模拟器随Xcode一起提供
  • iPad模拟器
    :模拟器随Xcode一起提供
  • Macintosh
  • MacIntel
    :英特尔处理器(2005)
  • MacPPC
    :PowerPC处理器
  • Mac68K
    :68000处理器
  • Pike v7.6 92版
    :任何iPhone上的Opera Mini 5(2009)
  • Pike v7.8 517版
    :任何iPhone上的Opera Mini 7(2012)
黑莓

  • 黑莓
(2003) FreeBSD

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

非常不可靠,因为很多平台都是基于此构建的。例如,ChromeOS上的Chrome或Linux x86-64都返回
Linux i686
,因为这就是它们编译的目的

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

  • Linux
  • Linux aarch64
  • Linux armv5tejl
  • Linux-armv6l
  • Linux armv7l
  • Linux armv8l
  • Linux i686
  • x86_64上的Linux i686
  • Linux i686 X11
    :基于X11窗口系统
  • Linux MSM8960\u v3.2.1.1\N\u R069\u版本:18
    :索尼Xperia V
  • Linux ppc64
  • Linux x86\u 64
  • Linux x8
    
    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                          |
    +-----+--------------+--------------------------------------+