Was ist die Liste der möglichen Werte für navigator.platform ab heute?

94

Ich weiß, dass sich dies ziemlich oft ändert, aber gibt es eine möglichst vollständige Liste der möglichen Werte, die von zurückgegeben werden navigator.platform?

Liste bisher:

  • HP-UX
  • Linux i686
  • Linux armv7l
  • Mac68K
  • MacPPC
  • MacIntel
  • SunOS
  • Win16
  • Win32
  • Zusammenzucken
  • iPhone
  • iPod
  • iPad
  • Android
  • Brombeere
  • Oper
thomasstephn
quelle
Hast du angeschaut browscap.ini? Das Projekt wurde Anfang dieses Jahres neu gestartet.
Robbert
1
Ja, aber es gibt überhaupt keine aktualisierte Liste. Zum Beispiel ist iPad nicht drin
Thomasstephn

Antworten:

159

Haftungsausschluss: Bitte beachten Sie, dass diese Eigenschaft vom Browser gesendet wird und daher wie Zeichenfolgen von Benutzeragenten gefälscht werden kann. Verlassen Sie sich niemals darauf, dass das navigatorObjekt vollständig genau ist.


Die Definition

Soweit ich weiß, gibt es keine einzige öffentliche Liste aller möglichen navigator.platformWerte, obwohl es die Immobilie schon seit einiger Zeit gibt. Um die Sache noch schlimmer zu machen, hat sich die Definition der Immobilie im Laufe der Jahre geändert. Ich war:

navigator.platform Gibt den Maschinentyp an, für den der Browser kompiliert wurde.

Dies bedeutet im Grunde, dass die Eigenschaft zurückgegeben werden kann, Win16wenn der Benutzer einen für 16-Bit kompilierten Browser ausführt, obwohl sich der Benutzer auf einem 32-Bit- oder 64-Bit-Windows-Computer befindet.

Natürlich listet W3Schools die alte Definition auf (ich werde nicht einmal darauf verlinken). W3 und MDN haben sich jedoch auf eine andere Definition geeinigt:

navigator.platform stellt die Plattform dar, auf der der Browser ausgeführt wird.

Dennoch ist diese Definition etwas vage. Vor einem Jahrzehnt war eine "Plattform" entweder eine CPU-Architektur oder ein Betriebssystem. In den letzten Jahren können Handheld- und Mediengeräte auch Plattformen sein.


Die Interpretation

Wie bei allem im Web liegt unser Schicksal in den Händen der mächtigen Browser-Anbieter. In diesem Fall stimmen alle gängigen Browser (IE, Safari, Firefox und Chrome) darin überein, dass mein 64-Bit-Windows-Computer eine Win32Plattform ist. Dies bedeutet, dass sie in Bezug auf Windows an der alten Definition festhalten, da bisher keine von ihnen für 64-Bit kompiliert wurde. Schauen Sie aber auf die gute Seite: Zumindest sind sich alle einmal einig.

Es scheint, als hätten wir etwas mehr Glück, wenn es um Handheld- und Mediengeräte geht. Wie Sie bereits in Ihrer Frage angegeben haben, haben iPhone, iPod und iPad jeweils einen eindeutigen Wert, obwohl alle dasselbe Betriebssystem ausführen. Alle Geräte von Nintendo und Sony geben ebenfalls eindeutige Werte zurück. Es navigator.platformsieht also erst jetzt interessant aus.

Aber dann kommt Opera Mini für iPhone und bringt die Dinge wieder durcheinander. Opera Mini gibt tatsächlich eine Versionsnummer der Code-Engine zurück, die eine völlig andere Interpretation darstellt platformals alles, was uns bisher begegnet ist. Jetzt sind wir wieder da, wo wir angefangen haben, und wir beginnen zu verstehen, warum es so wenig Informationen zu diesem Thema gibt.

Obwohl die Interpretationen variieren und ich keine vollständige Antwort für Sie habe, hatte ich das Gefühl, ich sollte meine 2 Cent für alle anderen da draußen hinzufügen, die die navigator.platformImmobilie recherchieren .


Die Liste

Unten finden Sie eine (definitiv nicht definierte) Liste der mir bekannten Werte, die ich mit mehreren Quellen überprüfen konnte. Aufgrund der vagen Definition bin ich mir nicht sicher, wie ich diese am besten bestellen kann. Im Moment habe ich sie je nach Betriebssystem oder Gerätemarke in einige Kategorien unterteilt und gegebenenfalls zusätzliche Informationen und Veröffentlichungsdaten aufgelistet.

Android

Es ist wirklich schwer, für Android-Geräte zu testen. Android-Geräte werden Androidgenauso oft zurückgegeben wie einige Linux-Versionen. Auf einem Nexus 5-Telefon kehren beispielsweise sowohl der Android-Browser als auch Chrome zurück Linux armv7l. In seltenen Fällen können Android-Geräte sogar null(anstelle von undefined) zurückkehren.

  • Android (2008)
  • Linux: siehe Anmerkungen oben
  • null

Apfel

Was iOS betrifft: Safari, Chrome und Mercury sind sich einig, aber Opera bringt die Dinge durcheinander.

  • iPhone (2007)
  • iPod (2007)
  • iPad (2010)
  • iPhone Simulator: Simulator wird mit Xcode geliefert
  • iPod Simulator: Simulator wird mit Xcode geliefert
  • iPad Simulator: Simulator wird mit Xcode geliefert
  • Macintosh
  • MacIntel: Intel-Prozessor (2005)
  • MacPPC: PowerPC-Prozessor
  • Mac68K: 68000 Prozessor
  • Pike v7.6 release 92: Opera Mini 5 auf jedem iPhone (2009)
  • Pike v7.8 release 517: Opera Mini 7 auf jedem iPhone (2012)

Brombeere

  • BlackBerry (2003)

FreeBSD

  • FreeBSD
  • FreeBSD i386: x86 (IA-32) Prozessor
  • FreeBSD amd64: AMD x86-64 Prozessor

Linux

Ernsthaft unzuverlässig, weil so viele Plattformen darauf aufgebaut sind. Beispielsweise kehren Chrome unter ChromeOS oder Linux x86-64 beide zurückLinux i686 da sie dafür kompiliert wurden.

Hinweis Linux ARM listet Architekturflags auf, z. B. armv5tejwürde eine v5 ARM-Architektur mit Thumb-Unterstützung ('T'), einem DSP-Befehlssatz ('E') und Jazelle-Unterstützung ('J') bezeichnet.

  • Linux
  • Linux aarch64
  • Linux armv5tejl
  • Linux armv6l
  • Linux armv7l
  • Linux i686
  • Linux i686 on x86_64
  • Linux i686 X11: basierend auf X11 Window System
  • Linux MSM8960_v3.2.1.1_N_R069_Rev:18: Sony Xperia V.
  • Linux ppc64
  • Linux x86_64
  • Linux x86_64 X11: basierend auf X11 Window System

Microsoft

Selbst unter einem 64-Bit-Windows 8 bleiben alle dabei Win32.

  • OS/2 (1994 †)
  • Pocket PC
  • Windows
  • Win16: Windows 3.1x (1992 †)
  • Win32: Windows 95 und höher
  • WinCE

Mozilla (Firefox OS)

Eine leere Zeichenfolge wird im Webbrowser unter Firefox OS zurückgegeben. Siehe diesen Fehlerbericht .

KaiOS

Der Webbrowser unter KaiOS (basierend auf Firefox) gibt auch die leere Zeichenfolge zurück (wie Firefox OS). Siehe diesen Fehlerbericht .

Nintendo

  • 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 †)
  • Symbian: Opera auf Symbian
  • Symbian OS

Palme

  • PalmOS (1996)
  • webOS (2009)

Solaris

  • SunOS
  • SunOS i86pc
  • SunOS sun4u: SPARC-Prozessor

Sony

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

Verschiedene

  • HP-UX: Hewlett-Packard UniX
  • masking-agent: Der Wert ändert sich bei Verwendung von Masking Agent für Firefox
  • WebTV OS
  • X11: X11 Fenstersystem

Haben Sie ein Gerät, das nicht auf dieser Liste steht? Bitte hinterlassen Sie einen Kommentar, in dem die Eigenschaften und der navigator.platformWert Ihres Geräts aufgeführt sind (verwenden Sie diese JSFiddle , um den Wert zu ermitteln).

Hoffe das hilft.

Robbert
quelle
Ich bin froh, Ihnen helfen zu können, Thomas.
Robbert
Zu Ihrer Information, es gibt einige 64-Bit-Browser, sogar IE, wenn Sie es ausgraben können. Daher kann manchmal Win64 angezeigt werden. Mein Browser-Sniffer ist so eingestellt, dass er es sieht und den Browser als 64-Bit-Ausführung markiert. Ansonsten sehr umfangreiche Liste .. danke. :)
Bezelith
Es gibt ein paar mehr auf dieser Liste: books.google.com/…
hexalys
@Bezelith: danke! Ich habe auch Leute gesehen, die versucht haben, 64-Bit-Systeme mit navigator.cpuClassund zu erkennen navigator.appVersion, aber bisher scheinen beide nicht zuverlässig zu sein. @hexalys: Danke auch, ich habe diese Zeichenfolgen zur Liste hinzugefügt.
Robbert
1
Ich kann im Moment nicht nachsehen, aber würde es nicht auch eine für die Xbox 360, Xbox One, PS4 geben?
John Odom
21

Ich kann dieser Liste definitive Werte für bestimmte Geräte hinzufügen, die ich getestet habe.

Wo sich die Zeichenfolge befindet Linux armv7l, endet sie in Kleinbuchstaben L(vermutlich für "Linux?") Und nicht in Zahlen 1oder KleinbuchstabenI .

Für die iOS-Geräte wurden Tests in Safari durchgeführt. Für die Android-Geräte wurden Tests im Aktienbrowser oder in Chrome durchgeführt, wenn kein Aktienbrowser installiert war.

Von den Windows-Tablet-Geräten wurde auf dem Nokia Lumia Windows RT 8.1 mit IE 11.0.9600.16476 und auf dem MS Surface Windows 8.1 Pro mit IE 11.0.9600.16438 ausgeführt.

Von den Windows Phone-Geräten lief auf dem Nokia Lumia Windows Phone 8.1 und IE 11.

Telefone

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

Tablets

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
BillyRayPreachersSon
quelle
Tolle Ergänzung zu meinem ersten Listenversuch, gute Arbeit! Sogar iOS kann dennoch eine andere Kennung in einem anderen Browser zurückgeben - insbesondere Opera Mini. Wir brauchen eine Website, die alle Kombinationen von Gerät / Betriebssystem / Browser oder so etwas testet ...
Robbert
ARM-Architekturen verwenden Suffixe in Kleinbuchstaben, um Variantenmerkmale zu kennzeichnen. Soweit ich weiß, lsteht das für Little-Endian (Speichern des LSB in der kleinsten Adresse, wenn das Sinn macht). Es gibt jedoch viel zu viele Varianten, um den Überblick zu behalten.
Robbert
9

Ich konnte keinen Kommentar posten, daher hinterlasse ich diese, von denen ich denke, dass sie oben nicht erwähnt wurden:

+-----+--------------+--------------------------------------+
| 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" ist eine Browser-Datenschutzerweiterung, die die Plattform standardmäßig dahingehend ändert.

Das seltsam lange ist ein Sony Z10

Justin
quelle
Vielen Dank für diese Ergänzungen. Ich habe sie der Liste hinzugefügt. Sony Z10hält jetzt die Krone für den längsten navigator.platformWert.
Robbert
@justin Weißt du zufällig, welche Browser-Datenschutzerweiterung den Wert in "Masking-Agent" ändert? edit: egal , ich sehe addons.mozilla.org/en-US/firefox/addon/masking-agent , aber ich denke , ich wundere mich immer noch über Chrome oder andere Browser, wenn jemand weiß.
user4851
@ user4851 addons.mozilla.org/en-US/firefox/addon/masking-agent ist nicht mehr verfügbar
Christophe Roussy