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


94

我知道这种更改经常发生,但是是否有一个列表尽可能详尽地列出了所返回的值navigator.platform

到目前为止的清单:

  • HP-UX
  • Linux i686
  • Linux armv7l
  • Mac68K
  • MacPPC
  • MacIntel
  • 太阳操作系统
  • Win16的
  • Win32的
  • WinCE的
  • 苹果手机
  • iPod
  • 的iPad
  • 安卓系统
  • 黑莓
  • 歌剧

你看了browscap.ini吗?该项目已于今年初重新启动。
罗伯特

1
是的,但是它根本没有提供更新的列表。例如,iPad不在其中
thomasstephn

Answers:


159

免责声明:请注意,此属性是由浏览器发送的,因此可以伪造,就像用户代理字符串一样。切勿完全依赖navigator物体。


定义

据我所知navigator.platform,即使该属性存在很多时间,也没有一个包含所有可能值的公共列表。更糟的是,这些年来,酒店的定义发生了变化。它曾经是:

navigator.platform 指示为其编译浏览器的机器类型。

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

当然W3Schools列出了旧的定义(我什至不会链接到它们)。W3MDN同意了不同的定义:

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

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


解释

与网络上的所有内容一样,我们的命运掌握在强大的浏览器供应商手中。在这种情况下,所有主要的浏览器(IE,Safari,Firefox和Chrome)都同意我的64位Windows计算机是Win32平台。这意味着就Windows而言,它们一直遵循旧的定义,因为到目前为止,它们都没有针对64位进行编译。不过,要乐观地看:至少他们所有人都同意一次。

在手持设备和媒体设备方面,我们似乎有点运气。正如您在问题中已经提到的那样,即使它们都运行相同的操作系统,iPhone,iPod和iPad各自具有独特的价值。任天堂和索尼的所有设备也都返回了唯一的值。所以直到现在才navigator.platform开始看起来很有趣。

但是随后出现了适用于iPhone的Opera Mini,又把事情搞砸了。Opera Mini实际上会返回一个代码引擎版本号,这与platform到目前为止我们所遇到的任何事情都完全不同。现在,我们回到了开始的地方,并且开始了解为什么关于此主题的信息很少。

尽管解释各不相同,但我没有为您提供完整的答案,但我还是觉得应该为研究该navigator.platform物业的其他任何人加2美分。


名单

以下是我所知道的(绝对不确定)值列表,可以使用多个来源进行验证。由于定义不明确,我不太确定订购这些产品的最佳方法是什么。目前,我根据操作系统或设备品牌将它们分为几类,并列出了其他信息和适用的发布日期。

安卓系统

真的很难测试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 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 Window System

微软

即使在64位Windows 8上,它们都坚持使用Win32

  • OS/2 (1994†)
  • Pocket PC
  • Windows
  • Win16:Windows 3.1x(1992†)
  • Win32:Windows 95及更高版本
  • WinCE

Mozilla(Firefox作业系统)

在Firefox OS上的网络浏览器中返回一个空字符串。请参阅此错误报告

操作系统

KaiOS(基于Firefox)上的Web浏览器还返回空字符串(与Firefox OS相同)。请参阅此错误报告

任天堂

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

OpenBSD的

  • OpenBSD amd64

塞班/ S40

  • Nokia_Series_40 (1999†)
  • S60 (2002†)
  • Symbian:Symbian上的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:惠普UniX
  • masking-agent:使用适用于Firefox的Masking Agent时,值更改为此
  • WebTV OS
  • X11:X11窗口系统

是否有不在此列表中的设备?请留下评论,列出您设备的属性及其navigator.platform值(可以使用此JSFiddle查找值)。

希望这可以帮助。


Thomas,很高兴能为您提供帮助。
罗伯特

仅供参考,如果您可以挖掘的话,确实存在一些64位浏览器,甚至是IE。因此,Win64有时会出现。我的浏览器嗅探器设置为查看它,并将浏览器标记为正在执行64位。否则很全面的列表..谢谢。:)
Bezelith 2013年

有此名单上多了一些:books.google.com/...
hexalys

@Bezelith:谢谢!我还看到人们尝试使用navigator.cpuClass和来检测64位系统navigator.appVersion,但是到目前为止,这两种方法似乎都不可靠。@hexalys:谢谢你,我已经将那些字符串添加到列表中。
罗伯特

1
我目前无法检查,但Xbox 360,Xbox One和PS4也会没有吗?
约翰·奥多姆

21

我可以使用已测试的特定设备的确定值添加到此列表中。

字符串在哪里Linux armv7l,它以小写字母结尾L(对于“ Linux,大概是?”),而不是数字1或小写字母I

对于iOS设备,在Safari中进行了测试。对于Android设备,测试是在常规浏览器中进行的;如果未安装常规浏览器,则在Chrome中进行测试。

在Windows平板设备中,诺基亚Lumia运行的是带有IE 11.0.9600.16476的Windows RT 8.1,而MS Surface运行的是带有IE 11.0.9600.16438的Windows 8.1 Pro。

在Windows Phone设备中,诺基亚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

很好,除了我的初始列表尝试,干得好!即使是iOS,仍然可以在其他浏览器中返回不同的标识符-特别是Opera Mini。我们需要一个网站来测试设备/操作系统/浏览器的所有组合或某物…
罗伯特

ARM体系结构使用小写后缀来表示变体功能。据我所知l,little-endian 的代表(将LSB存储在最小的地址中,如果可以的话)。尽管有太多的变体无法跟踪。
罗伯特2014年

9

我无法发表评论,因此我在上面未提及这些评论:

+-----+--------------+--------------------------------------+
| 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                          |
+-----+--------------+--------------------------------------+

“ masking-agent”是浏览器隐私扩展,默认情况下会将其更改为平台。

奇怪的是索尼Z10


非常感谢这些添加。我已将它们添加到列表中。Sony Z10现在拥有最高navigator.platform价值的王冠。
罗伯特

@justin您是否偶然知道哪个浏览器隐私扩展将值更改为“ masking-agent”?编辑:没关系,我看到addons.mozilla.org/en-US/firefox/addon/masking-agent,但是我想我仍然想知道Chrome或其他浏览器,如果有人知道的话。
user4851 17-10-25

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.