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
javascript
Thomasstephn
fuente
fuente
browscap.ini
? El proyecto se reinició a principios de este año.Respuestas:
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: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:
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 vuelvenLinux armv7l
. En raras ocasiones, los dispositivos Android pueden incluso regresarnull
(en lugar deundefined
).Android
(2008)Linux
: ver notas arribanull
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 XcodeiPod Simulator
: simulador enviado con XcodeiPad Simulator
: simulador enviado con XcodeMacintosh
MacIntel
: Procesador Intel (2005)MacPPC
: Procesador PowerPCMac68K
: Procesador 68000Pike 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-64Linux
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 X11Linux MSM8960_v3.2.1.1_N_R069_Rev:18
: Sony Xperia VLinux ppc64
Linux x86_64
Linux x86_64 X11
: basado en el sistema de ventanas X11Microsoft
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 superiorWinCE
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 SymbianSymbian OS
Palma
PalmOS
(1996)webOS
(2009)Solaris
SunOS
SunOS i86pc
SunOS sun4u
: Procesador SPARCSony
PLAYSTATION 3
(2006)PlayStation 4
(2013)PSP
: PlayStation portátil (2004)Varios
HP-UX
: Hewlett-Packard UniXmasking-agent
: el valor cambia a esto cuando se usa Masking Agent para FirefoxWebTV 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.
fuente
navigator.cpuClass
ynavigator.appVersion
, pero ninguno parece confiable hasta ahora. @hexalys: gracias también, agregué esas cadenas a la lista.Puedo agregar a esta lista valores definitivos para dispositivos específicos que he probado.
Donde está la cadena
Linux armv7l
, termina en minúsculasL
(para "Linux, presumiblemente?), En lugar de ser un número1
o minúsculaI
.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
Tabletas
fuente
l
significa 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.No pude publicar un comentario, así que les dejo estos que creo que no se mencionan arriba:
"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
fuente
Sony Z10
ahora tiene la corona por mayornavigator.platform
valor.