我知道这经常发生变化,但是是否有一个尽可能详尽的列表来列出由 返回的可能值navigator.platform
?
到目前为止的清单:
- 用户体验
- Linux i686
- linux armv7l
- Mac68K
- MacPPC
- 英特尔
- 太阳操作系统
- Win16
- Win32
- 电脑版
- iPhone
- iPod
- iPad
- 安卓
- 黑莓
- 歌剧
我知道这经常发生变化,但是是否有一个尽可能详尽的列表来列出由 返回的可能值navigator.platform
?
到目前为止的清单:
免责声明:请注意此属性是由浏览器发送的,因此可以伪造,就像用户代理字符串一样。永远不要依赖navigator
对象是完全准确的。
navigator.platform
表示编译浏览器的机器类型。
这基本上意味着该属性可以Win16
在用户运行为 16 位编译的浏览器时返回,即使用户使用的是 32 位或 64 位 Windows 机器。
当然,W3Schools 列出了旧定义(我什至不打算链接到它们)。W3和MDN已经同意了不同的定义:
navigator.platform
表示浏览器正在执行的平台。
尽管如此,这个定义还是有点模糊。十年前,“平台”要么是 CPU 架构,要么是操作系统。近年来,手持设备和媒体设备也可以成为平台。
在手持设备和媒体设备方面,我们似乎更幸运一些。正如您在问题中已经指出的那样,iPhone、iPod 和 iPad 都有独特的value,即使它们都运行相同的操作系统。任天堂和索尼的所有设备也都在返回独特的value。所以现在才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 armv8l
Linux i686
Linux i686 on x86_64
Linux i686 X11
: 基于 X11 窗口系统Linux MSM8960_v3.2.1.1_N_R069_Rev:18
: 索尼 Xperia VLinux 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 上的 Web 浏览器中返回一个空字符串。请参阅此错误报告。
卡iOS
KaiOS 上的网络浏览器(基于 Firefox)也返回空字符串(与 Firefox OS 相同)。请参阅此错误报告。
任天堂
New Nintendo 3DS
(2014)Nintendo DSi
(2008)Nintendo 3DS
(2011)Nintendo Wii
(2006)Nintendo WiiU
(2012)开放式BSD
OpenBSD amd64
塞班/S40
Nokia_Series_40
(1999†)S60
(2002†)Symbian
: Symbian 上的 OperaSymbian OS
棕榈
PalmOS
(1996)webOS
(2009)索拉里斯
SunOS
SunOS i86pc
SunOS sun4u
: SPARC 处理器索尼
PLAYSTATION 3
(2006)PlayStation 4
(2013)PSP
: PlayStation Portable (2004)各种各样的
HP-UX
: 惠普 Unixmasking-agent
: 使用 Masking Agent for Firefox 时,此值会更改WebTV OS
X11
: X11 窗口系统有不在此列表中的设备?请发表评论,列出您设备的属性及其navigator.platform
value(请随意使用此 JSFiddle来查找value)。
希望这可以帮助。
我可以将我测试过的特定设备的确定值添加到此列表中。
字符串在哪里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 手机设备中,诺基亚 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 |
+-----+--------------+--------------------------------------+
“masking-agent”是一个浏览器隐私扩展,默认情况下会将平台更改为该平台。
奇怪的长的是索尼Z10