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 navigator
objeto 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 Win16
cuando 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.platform
empieza 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 platform
a 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.platform
propiedad.
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 Android
misma 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
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 i686
ya 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
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.platform
valor (siéntase libre de usar este JSFiddle para encontrar el valor).
Espero que esto ayude.
browscap.ini
? El proyecto se reinició a principios de este año.