Qual è l'elenco dei possibili valori per navigator.platform a partire da oggi? [chiuso]


93

So che questo cambia abbastanza spesso, ma esiste un elenco il più esauriente possibile dei possibili valori restituiti da navigator.platform?

Elenco finora:

  • HP-UX
  • Linux i686
  • Linux armv7l
  • Mac68K
  • MacPPC
  • MacIntel
  • SunOS
  • Win16
  • Win32
  • WinCE
  • i phone
  • iPod
  • iPad
  • Android
  • Mora
  • musica lirica

1
Hai guardato browscap.ini? Il progetto è stato riavviato all'inizio di quest'anno.
Robbert

1
Sì, ma non fornisce affatto un elenco aggiornato. Ad esempio, l'iPad non è
incluso

Risposte:


163

Disclaimer: si prega di notare che questa proprietà viene inviata dal browser e può quindi essere falsificata, proprio come le stringhe dell'agente utente. Non fare mai affidamento navigatorsull'oggetto per essere completamente accurato.

La definizione

Per quanto ne so non esiste un unico elenco pubblico di tutti i possibili valori di `navigator.platform`, anche se la proprietà è in circolazione da un bel po '. A peggiorare le cose, la definizione della proprietà è cambiata nel corso degli anni. Era:

navigator.platform indica il tipo di macchina per cui è stato compilato il browser.

Ciò significa fondamentalmente che la proprietà può essere restituita Win16quando l'utente esegue un browser compilato per 16 bit, anche se l'utente si trova su una macchina Windows a 32 o 64 bit.

Ovviamente W3Schools elenca la vecchia definizione (non le collegherò nemmeno). Tuttavia, W3 e MDN hanno concordato una definizione diversa:

navigator.platform rappresenta la piattaforma su cui è in esecuzione il browser.

Tuttavia, questa definizione è un po 'vaga. Un decennio fa una "piattaforma" poteva essere un'architettura CPU o un sistema operativo. Negli ultimi anni anche i dispositivi palmari e multimediali possono essere piattaforme.


L'interpretazione

Come per qualsiasi cosa sul Web, il nostro destino è nelle mani dei potenti fornitori di browser. In questo caso, tutti i principali browser (IE, Safari, Firefox e Chrome) concordano sul fatto che la mia macchina Windows a 64 bit è una piattaforma "Win32". Ciò significa che si attengono alla vecchia definizione per quanto riguarda Windows, perché nessuno di loro è stato compilato per 64 bit finora. Guarda il lato positivo però: almeno sono tutti d'accordo su qualcosa per una volta.

Sembra che siamo un po 'più fortunati quando si tratta di dispositivi portatili e multimediali. Come hai già affermato nella tua domanda, iPhone, iPod e iPad hanno ciascuno un valore unico, anche se eseguono tutti lo stesso sistema operativo. Anche tutti i dispositivi Nintendo e Sony stanno restituendo valori unici. Quindi solo ora navigator.platforminizia a sembrare interessante.

Ma poi arriva Opera Mini per iPhone, che incasina di nuovo le cose. Opera Mini in realtà restituisce un numero di versione del motore di codice, che è un'interpretazione completamente diversa platformrispetto a qualsiasi altra cosa che abbiamo incontrato finora. Quindi ora siamo tornati al punto di partenza e iniziamo a capire perché ci sono così poche informazioni su questo argomento là fuori.

Anche se le interpretazioni variano e non ho una risposta completa per te, mi sono sentito come se dovessi aggiungere i miei 2 centesimi per chiunque altro là fuori alla ricerca della navigator.platformproprietà.


La lista

Di seguito è riportato un elenco (decisamente non definito) dei valori di cui sono a conoscenza che ho potuto verificare con più fonti. A causa della vaga definizione, non sono troppo sicuro di quale sia il modo migliore per ordinarli. Per ora li ho divisi in alcune categorie in base al sistema operativo o al marchio del dispositivo e ho elencato ulteriori informazioni e date di rilascio, ove applicabili.

Android

È davvero difficile testare per i dispositivi Android. I dispositivi Android torneranno Androidtanto spesso quanto alcune versioni di Linux. Ad esempio, su un telefono Nexus 5, vengono restituiti sia il browser Android che Chrome Linux armv7l. In rari casi i dispositivi Android possono persino restituire null(invece di undefined).

  • Android (2008)
  • Linux: vedi note sopra
  • null

Mela

Per quanto riguarda iOS: Safari, Chrome e Mercury sono d'accordo, ma Opera incasina le cose.

  • iPhone (2007)
  • iPod (2007)
  • iPad (2010)
  • iPhone Simulator: simulatore fornito con Xcode
  • iPod Simulator: simulatore fornito con Xcode
  • iPad Simulator: simulatore fornito con Xcode
  • Macintosh
  • MacIntel: Processore Intel (2005)
  • MacPPC: Processore PowerPC
  • Mac68K: 68000 processore
  • Pike v7.6 release 92: Opera Mini 5 su qualsiasi iPhone (2009)
  • Pike v7.8 release 517: Opera Mini 7 su qualsiasi iPhone (2012)

Mora

  • BlackBerry (2003)

FreeBSD

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

Linux

Seriamente inaffidabile perché così tante piattaforme sono costruite su questo. Ad esempio, Chrome su ChromeOS o Linux x86-64 restituiscono entrambi Linux i686perché è quello per cui sono stati compilati.

Nota Linux ARM elenca i flag dell'architettura, ad esempio armv5tejdenoterebbe un'architettura ARM v5 con supporto Thumb ('T'), un set di istruzioni DSP ('E') e supporto Jazelle ('J').

  • Linux
  • Linux aarch64
  • Linux armv5tejl
  • Linux armv6l
  • Linux armv7l
  • Linux armv8l
  • Linux i686
  • Linux i686 on x86_64
  • Linux i686 X11: basato su 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: basato su X11 Window System

Microsoft

Anche su un Windows 8 a 64 bit si attengono tutti Win32.

  • OS/2 (1994 †)
  • Pocket PC
  • Windows
  • Win16: Windows 3.1x (1992 †)
  • Win32: Windows 95 e versioni successive
  • WinCE

Mozilla (Firefox OS)

Viene restituita una stringa vuota nel browser Web su Firefox OS. Vedi questa segnalazione di bug .

KaiOS

Anche il browser web su KaiOS (basato su Firefox) restituisce la stringa vuota (uguale a Firefox OS). Vedi questa segnalazione di bug .

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 su Symbian
  • Symbian OS

Palma

  • PalmOS (1996)
  • webOS (2009)

Solaris

  • SunOS
  • SunOS i86pc
  • SunOS sun4u: Processore SPARC

Sony

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

Vari

  • HP-UX: Hewlett-Packard UniX
  • masking-agent: il valore cambia in questo quando si utilizza Masking Agent per Firefox
  • WebTV OS
  • X11: X11 Window System

Hai un dispositivo che non è in questo elenco? Lascia un commento che elenchi le proprietà del tuo dispositivo e il suo navigator.platformvalore (sentiti libero di usare questo JSFiddle per trovare il valore).

Spero che questo ti aiuti.


Felice di essere d'aiuto, Thomas.
Robbert

Cordiali saluti, esistono alcuni browser a 64 bit, anche IE, se riesci a scavare. Pertanto, a volte può apparire Win64. Lo sniffer del mio browser è impostato per vederlo e contrassegna il browser come in esecuzione a 64 bit. Altrimenti elenco molto completo .. grazie. :)
Bezelith

Ce ne sono altri in questo elenco: books.google.com/…
hexalys

@ Bezelith: grazie! Ho anche visto persone provare a rilevare sistemi a 64 bit con navigator.cpuClasse navigator.appVersion, ma finora nessuno dei due sembra affidabile. @hexalys: grazie anche a te, ho aggiunto quelle stringhe alla lista.
Robbert

1
Non sono in grado di controllare al momento, ma non ce ne sarebbe uno anche per Xbox 360, Xbox One, PS4?
John Odom

21

Posso aggiungere a questo elenco i valori definitivi per dispositivi specifici che ho testato.

Dove si trova la stringa Linux armv7l, finisce in minuscolo L(per "Linux, presumibilmente?), Piuttosto che essere un numero 1o minuscolo I.

Per i dispositivi iOS, il test è stato eseguito in Safari. Per i dispositivi Android, il test è stato eseguito nel browser stock o Chrome se non è stato installato alcun browser stock.

Dei tablet Windows, il Nokia Lumia eseguiva Windows RT 8.1 con IE 11.0.9600.16476 e MS Surface eseguiva Windows 8.1 Pro con IE 11.0.9600.16438.

Dei dispositivi Windows Phone, il Nokia Lumia eseguiva Windows Phone 8.1 e IE 11.

Telefoni

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

Compresse

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

Ottima aggiunta al mio tentativo di elenco iniziale, buon lavoro! Anche iOS può comunque restituire un identificatore diverso in un browser diverso, in particolare Opera Mini. Abbiamo bisogno di un sito web che verifichi tutte le combinazioni di dispositivo / sistema operativo / browser o qualcosa del genere ...
Robbert

1
Le architetture ARM utilizzano suffissi minuscoli per indicare le caratteristiche delle varianti. Per quanto ne so, gli lsta per little endian (memorizzare l'LSB nell'indirizzo più piccolo, se ha senso). Ci sono comunque troppe varianti per tenerne traccia.
Robbert

9

Non ho potuto pubblicare un commento, quindi lascio questi che penso non siano menzionati sopra:

+-----+--------------+--------------------------------------+
| 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" è un'estensione per la privacy del browser che cambia la piattaforma per impostazione predefinita in quella.

Quello strano lungo è un Sony Z10


Grazie mille per queste aggiunte. Li ho aggiunti alla lista. Sony Z10ora detiene la corona per il navigator.platformvalore più lungo .
Robbert

@justin Sapete per caso quale estensione per la privacy del browser cambia il valore in "masking-agent"? modifica: non importa, vedo addons.mozilla.org/en-US/firefox/addon/masking-agent , ma suppongo che mi stia ancora chiedendo di Chrome o altri browser, se qualcuno lo sa.
user4851

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.