Pregunta ¿Cuál es la lista de valores posibles para navigator.platform a partir de hoy?


Sé que esto cambia bastante a menudo, pero ¿hay una lista lo más exhaustiva posible de los posibles valores devueltos por navigator.platform?

Lista hasta ahora:

  • HP-UX
  • Linux i686
  • Linux armv7l
  • Mac68K
  • MacPPC
  • MacIntel
  • SunOS
  • Win16
  • Win32
  • Contraerse de dolor
  • iPhone
  • iPod
  • iPad
  • Androide
  • Mora
  • Ópera

75
2017-11-09 15:55


origen


Respuestas:


Renuncia: tenga en cuenta que esta propiedad es enviada por el navegador y, por lo tanto, puede ser falsificada, al igual que las cadenas de agente de usuario. Nunca confíe en el navigator objeto para ser completamente exacto.


La definición

Por lo que sé, no hay una sola lista pública de todos los posibles navigator.platform valores, a pesar de que la propiedad ha existido por bastante tiempo. Para empeorar las cosas, la definición de la propiedad cambió a lo largo de los años. Solía ​​ser:

navigator.platform indica el tipo de máquina para la que se compiló el navegador.

Esto básicamente significa que la propiedad puede regresar Win16 cuando el usuario ejecuta un navegador compilado para 16 bits, aunque el usuario esté en una máquina con Windows de 32 o 64 bits.

Por supuesto, W3Schools enumera la definición anterior (ni siquiera voy a vincularlos). W3 y MDN han acordado una definición diferente, sin embargo:

navigator.platform representa la plataforma en la que se está ejecutando el navegador.

Aún así, esta definición es un poco vaga. Hace una década, una 'plataforma' sería una arquitectura de CPU o un sistema operativo. En los últimos años, los dispositivos portátiles y multimedia también pueden ser plataformas.


La interpretación

Al igual que con todo en la web, nuestro destino está en manos de los poderosos proveedores de navegadores. En este caso, todos los navegadores principales (IE, Safari, Firefox y Chrome) aceptan que mi máquina con Windows de 64 bits es una Win32 plataforma. Esto significa que se están apegando a la definición anterior en lo que respecta a Windows, porque ninguno de ellos está compilado para 64 bits hasta el momento. Sin embargo, mira el lado positivo: al menos todos están de acuerdo en algo por una vez.

Parece que somos un poco más afortunados cuando se trata de dispositivos de mano y dispositivos multimedia. Como ya ha indicado en su pregunta, el iPhone, iPod y iPad obtuvieron un valor único, a pesar de que todos ejecutan el mismo sistema operativo. Todos los dispositivos de Nintendo y Sony también están devolviendo valores únicos. Entonces solo ahora navigator.platform está comenzando a verse interesante.

Pero luego aparece Opera Mini para iPhone, estropeando las cosas de nuevo. Opera Mini en realidad devuelve un número de versión del motor de código, que es una interpretación completamente diferente de platform que cualquier cosa que hayamos encontrado hasta ahora. Así que ahora estamos de vuelta donde comenzamos y comenzamos a entender por qué hay tan poca información sobre este tema.

Aunque las interpretaciones varían y no tengo una respuesta completa para ti, sentí que debería agregar mis 2 centavos a cualquier persona que esté investigando el tema. navigator.platformpropiedad.


La lista

A continuación hay una lista (definitivamente no definida) de los valores que conozco que pude verificar con múltiples fuentes. Debido a la definición vaga, no estoy muy seguro de cuál es la mejor manera de ordenarlos. Por ahora, los dividí en algunas categorías según el sistema operativo o la marca del dispositivo, y mencioné información adicional y fechas de publicación cuando correspondía.

Androide

Es realmente difícil probar dispositivos Android. Los dispositivos Android regresarán Android tan a menudo como alguna versión de Linux. Por ejemplo, en un teléfono Nexus 5, tanto el navegador Android como Chrome regresan Linux armv7l. En casos excepcionales, los dispositivos Android pueden incluso regresar null (en lugar de undefined)

  • Android (2008)
  • Linux: ver notas arriba
  • null

manzana

En lo que respecta a iOS: Safari, Chrome y Mercury están de acuerdo, pero Opera estropea las cosas.

  • iPhone (2007)
  • iPod (2007)
  • iPad (2010)
  • iPhone Simulator: simulador enviado con Xcode
  • iPod Simulator: simulador enviado con Xcode
  • iPad Simulator: simulador enviado con Xcode
  • Macintosh
  • MacIntel: Procesador Intel (2005)
  • MacPPC: Procesador PowerPC
  • Mac68K: Procesador 68000
  • Pike v7.6 release 92: Opera Mini 5 en cualquier iPhone (2009)
  • Pike v7.8 release 517: Opera Mini 7 en cualquier iPhone (2012)

Mora

  • BlackBerry (2003)

FreeBSD

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

Linux

Seriamente poco fiable porque muchas plataformas se basan en esto. Por ejemplo, Chrome en ChromeOS o Linux x86-64 ambos regresan Linux i686 ya que para eso fueron compilados.

Nota Linux ARM enumera indicadores de arquitectura, p. armv5tej denotaría una arquitectura v5 ARM con soporte para Thumb ('T'), un conjunto de instrucciones DSP ('E') y soporte Jazelle ('J').

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

Microsoft

Incluso en un Windows 8 de 64 bits todos se apegan a Win32.

  • OS/2 (1994 †)
  • Pocket PC
  • Windows
  • Win16: Windows 3.1x (1992 †)
  • Win32: Windows 95 y versiones posteriores
  • WinCE

Mozilla

Se devuelve una cadena vacía en Firefox OS. Ver este informe de error.

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

Palma

  • PalmOS (1996)
  • webOS (2009)

Solaris

  • SunOS
  • SunOS i86pc
  • SunOS sun4u: Procesador SPARC

Sony

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

Varios

  • HP-UX: Hewlett-Packard UniX
  • masking-agent: el valor cambia a esto cuando se usa Masking Agent for Firefox
  • WebTV OS
  • X11: Sistema de ventanas X11

¿Tienes un dispositivo que no está en esta lista? Deje un comentario que enumere las propiedades de su dispositivo y su navigator.platform valor (siéntase libre de usar este JSFiddle para encontrar el valor).

Espero que esto ayude.


120
2017-11-09 22:37



Puedo agregar a esta lista valores definitivos para dispositivos específicos que he probado.

Donde está la cuerda Linux armv7l, termina en minúscula L (¿para "Linux, presumiblemente?), en lugar de ser un número 1 o minúscula I.

Para los dispositivos con iOS, las pruebas se realizaron en Safari. Para los dispositivos Android, las pruebas se realizaron en el navegador de valores, o Chrome si no se instaló un navegador de valores.

De los dispositivos con tableta de Windows, el Nokia Lumia ejecutaba Windows RT 8.1 con IE 11.0.9600.16476, y MS Surface ejecutaba Windows 8.1 Pro con IE 11.0.9600.16438.

De los dispositivos de teléfonos con Windows, el Nokia Lumia estaba ejecutando Windows Phone 8.1 e IE 11.

Teléfonos

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

Tabletas

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

15
2018-05-19 11:15



No pude publicar un comentario, así que dejo estos que creo que no se mencionaron anteriormente:

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

"agente enmascarador" es una extensión de privacidad del navegador que cambia la plataforma de forma predeterminada a esa.

El extraño largo es un Sony Z10


6
2018-03-15 02:54