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


93

Sé que esto cambia con bastante frecuencia, 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

1
¿Miraste browscap.ini? El proyecto se reinició a principios de este año.
Robbert

1
Sí, pero no ofrece una lista actualizada en absoluto. Por ejemplo, el iPad no está en él
thomasstephn

Respuestas:


163

Descargo de responsabilidad: tenga en cuenta que esta propiedad es enviada por el navegador y, por lo tanto, puede falsificarse, al igual que las cadenas de agentes de usuario. Nunca confíe en que el navigatorobjeto sea completamente preciso.

La definición

Hasta donde yo sé, no hay una sola lista pública de todos los valores posibles de navigator.platform, a pesar de que la propiedad existe desde hace 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 Win16cuando el usuario está ejecutando un navegador compilado para 16 bits, aunque el usuario esté en una máquina Windows de 32 o 64 bits.

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

navigator.platform representa la plataforma en la que se ejecuta 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

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

Parece que tenemos un poco más de suerte cuando se trata de dispositivos portátiles y multimedia. Como ya ha dicho en su pregunta, el iPhone, el iPod y el iPad tienen cada uno un valor único, aunque todos ejecutan el mismo sistema operativo. Todos los dispositivos de Nintendo y Sony también están devolviendo valores únicos. Así que solo ahora navigator.platformempieza a parecer interesante.

Pero luego llega Opera Mini para iPhone, arruinando las cosas nuevamente. Opera Mini en realidad devuelve un número de versión del motor de código, que es una interpretación completamente diferente platforma cualquier cosa que hayamos encontrado hasta ahora. Así que ahora estamos de regreso 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 usted, sentí que debería agregar mis 2 centavos por cualquier otra persona que esté investigando la navigator.platformpropiedad.


La lista

A continuación se muestra una lista (definitivamente no definida) de los valores que conozco que podría verificar con múltiples fuentes. Debido a la vaga definición, 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 enumeré información adicional y fechas de lanzamiento cuando corresponda.

Androide

Es realmente difícil de probar para dispositivos Android. Los dispositivos Android volverán con la Androidmisma frecuencia que alguna versión de Linux. Por ejemplo, en un teléfono Nexus 5, tanto el navegador de Android como Chrome vuelven Linux armv7l. En raras ocasiones, 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

Realmente poco confiable porque muchas plataformas se basan en esto. Por ejemplo, Chrome en ChromeOS o Linux x86-64 regresan, Linux i686ya que para eso fueron compilados.

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

  • Linux
  • Linux aarch64
  • Linux armv5tejl
  • Linux armv6l
  • Linux armv7l
  • Linux armv8l
  • Linux i686
  • Linux i686 on x86_64
  • Linux i686 X11: basado en el sistema de ventanas X11
  • Linux MSM8960_v3.2.1.1_N_R069_Rev:18: Sony Xperia V
  • Linux ppc64
  • Linux x86_64
  • Linux x86_64 X11: basado en el sistema de ventanas X11

Microsoft

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

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

Mozilla (Firefox OS)

Se devuelve una cadena vacía en el navegador web en Firefox OS. Consulte este informe de errores .

KaiOS

El navegador web en KaiOS (basado en Firefox) también devuelve la cadena vacía (igual que Firefox OS). Consulte este informe de errores .

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 portátil (2004)

Varios

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

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

Espero que esto ayude.


Me alegro de ser de ayuda, Thomas.
Robbert

Para su información, existen algunos navegadores de 64 bits, incluso IE, si puede desenterrarlo. Por lo tanto, a veces puede aparecer Win64. El rastreador de mi navegador está configurado para verlo y marcar el navegador como en ejecución de 64 bits. Lista muy completa de lo contrario .. gracias. :)
Bezelith

Hay algunos más en esta lista: books.google.com/…
hexalys

@Bezelith: ¡gracias! También he visto personas que intentan detectar sistemas de 64 bits con navigator.cpuClassy navigator.appVersion, pero ninguno parece confiable hasta ahora. @hexalys: gracias también, agregué esas cadenas a la lista.
Robbert

1
No puedo verificar en este momento, pero ¿no habría uno para Xbox 360, Xbox One, PS4 también?
John Odom

21

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

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

Para los dispositivos iOS, las pruebas se realizaron en Safari. Para los dispositivos Android, las pruebas se realizaron en el navegador estándar o Chrome si no se instaló un navegador estándar.

De los dispositivos de tableta con Windows, 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 ejecutaba Windows Phone 8.1 e IE 11.

Los telefonos

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

Gran adición a mi intento inicial de lista, ¡buen trabajo! Sin embargo, incluso iOS puede devolver un identificador diferente en un navegador diferente, en particular Opera Mini. Necesitamos un sitio web que pruebe todas las combinaciones de dispositivo / sistema operativo / navegador o algo ...
Robbert

1
Las arquitecturas ARM usan sufijos en minúsculas para indicar características variantes. Hasta donde yo sé, lsignifica little-endian (almacenar el LSB en la dirección más pequeña, si eso tiene sentido). Sin embargo, hay demasiadas variantes para realizar un seguimiento.
Robbert

9

No pude publicar un comentario, así que les dejo estos que creo que no se mencionan arriba:

+-----+--------------+--------------------------------------+
| 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" es una extensión de privacidad del navegador que cambia la plataforma por defecto a eso.

El largo y extraño es un Sony Z10


Muchas gracias por estas adiciones. Los agregué a la lista. Sony Z10ahora tiene la corona por mayor navigator.platformvalor.
Robbert

@justin ¿Sabe qué extensión de privacidad del navegador cambia el valor a "masking-agent"? editar: no importa, veo addons.mozilla.org/en-US/firefox/addon/masking-agent , pero supongo que todavía me pregunto acerca de Chrome u otros navegadores, si alguien lo sabe.
user4851

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.