Eu sei que isso muda com frequência, mas existe uma lista tão completa quanto possível dos possíveis valores retornados por navigator.platform
?
Lista até agora:
- HP-UX
- Linux i686
- Linux armv7l
- Mac68K
- MacPPC
- MacIntel
- SunOS
- Win16
- Win32
- WinCE
- Iphone
- iPod
- iPad
- Android
- Amora
- Ópera
javascript
Thomasstephn
fonte
fonte
browscap.ini
? O projeto foi reiniciado no início deste ano.Respostas:
Aviso de isenção de responsabilidade: observe que esta propriedade é enviada pelo navegador e pode, portanto, ser falsificada, assim como as strings do agente do usuário. Nunca confie no
navigator
objeto para ser totalmente preciso.A definição
Pelo que eu sei, não há uma única lista pública de todos os
navigator.platform
valores possíveis , embora a propriedade já exista há bastante tempo. Para piorar as coisas, a definição do imóvel mudou ao longo dos anos. Costumava ser:Basicamente, isso significa que a propriedade pode ser retornada
Win16
quando o usuário está executando um navegador compilado para 16 bits, mesmo que o usuário esteja em uma máquina Windows de 32 ou 64 bits.É claro que W3Schools lista a definição antiga (nem mesmo vou criar um link para elas). W3 e MDN concordaram com uma definição diferente:
Ainda assim, essa definição é um pouco vaga. Uma década atrás, uma 'plataforma' seria uma arquitetura de CPU ou um sistema operacional. Nos últimos anos, dispositivos portáteis e de mídia também podem ser plataformas.
A interpretação
Como tudo na web, nosso destino está nas mãos dos poderosos fornecedores de navegadores. Neste caso, todos os principais navegadores (IE, Safari, Firefox e Chrome) concordam que minha máquina Windows de 64 bits é um
Win32
plataforma. Isso significa que eles estão aderindo à velha definição no que diz respeito ao Windows, porque nenhum deles foi compilado para 64 bits até agora. Mas olhe pelo lado bom: pelo menos todos eles concordam em algo pela primeira vez.Parece que temos um pouco mais de sorte quando se trata de dispositivos portáteis e de mídia. Como você já afirmou em sua pergunta, o iPhone, o iPod e o iPad têm um valor único, embora estejam executando o mesmo sistema operacional. Todos os dispositivos da Nintendo e da Sony também estão retornando valores únicos. Então só agora
navigator.platform
está começando a parecer interessante.Mas então chega o Opera Mini para iPhone, bagunçando as coisas novamente. Na verdade, o Opera Mini retorna um número de versão do mecanismo de código, que é uma interpretação completamente diferente de
platform
tudo o que encontramos até agora. Portanto, agora estamos de volta ao ponto de partida e começamos a entender por que há tão pouca informação sobre esse assunto por aí.Mesmo que as interpretações variem e eu não tenha uma resposta completa para você, senti que deveria adicionar meus 2 centavos para qualquer outra pessoa que estiver pesquisando a
navigator.platform
propriedade.A lista
Abaixo está uma lista (definitivamente não definida) dos valores que eu conheço que eu poderia verificar com várias fontes. Por causa da definição vaga, não tenho certeza de qual é a melhor maneira de fazer o pedido. Por enquanto, eu os dividi em algumas categorias com base no sistema operacional ou marca do dispositivo e listei informações adicionais e datas de lançamento, quando aplicável.
Android
É muito difícil testar dispositivos Android. Os dispositivos Android retornarão com
Android
a mesma frequência que algumas versões do Linux. Por exemplo, em um telefone Nexus 5, o navegador Android e o Chrome retornamLinux armv7l
. Em casos raros, os dispositivos Android podem até retornarnull
(em vez deundefined
).Android
(2008)Linux
: veja as notas acimanull
maçã
No que diz respeito ao iOS: Safari, Chrome e Mercury concordam, mas o Opera bagunça as coisas.
iPhone
(2007)iPod
(2007)iPad
(2010)iPhone Simulator
: simulador enviado com XcodeiPod Simulator
: simulador enviado com XcodeiPad Simulator
: simulador enviado com XcodeMacintosh
MacIntel
: Processador Intel (2005)MacPPC
: Processador PowerPCMac68K
: 68000 processadorPike v7.6 release 92
: Opera Mini 5 em qualquer iPhone (2009)Pike v7.8 release 517
: Opera Mini 7 em qualquer iPhone (2012)Amora
BlackBerry
(2003)FreeBSD
FreeBSD
FreeBSD i386
: processador x86 (IA-32)FreeBSD amd64
: Processador AMD x86-64Linux
Sério não confiável porque muitas plataformas são construídas sobre isso. Por exemplo, o Chrome no ChromeOS ou Linux x86-64 retornam
Linux i686
como foi para o qual foram compilados.Nota Linux ARM lista sinalizadores de arquitetura, por exemplo
armv5tej
, denotaria uma arquitetura ARM v5 com suporte a Thumb ('T'), um conjunto de instruções DSP ('E') e suporte Jazelle ('J').Linux
Linux aarch64
Linux armv5tejl
Linux armv6l
Linux armv7l
Linux i686
Linux i686 on x86_64
Linux i686 X11
: baseado no sistema de janelas X11Linux MSM8960_v3.2.1.1_N_R069_Rev:18
: Sony Xperia VLinux ppc64
Linux x86_64
Linux x86_64 X11
: baseado no sistema de janelas X11Microsoft
Mesmo em um Windows 8 de 64 bits, todos eles aderem
Win32
.OS/2
(1994 †)Pocket PC
Windows
Win16
: Windows 3.1x (1992 †)Win32
: Windows 95 e superiorWinCE
Mozilla (Firefox OS)
Uma string vazia é retornada no navegador da web no Firefox OS. Veja este relatório de bug .
KaiOS
O navegador da web no KaiOS (baseado no Firefox) também retorna a string vazia (igual ao Firefox OS). Veja este relatório de 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 em SymbianSymbian OS
Palma
PalmOS
(1996)webOS
(2009)Solaris
SunOS
SunOS i86pc
SunOS sun4u
: Processador SPARCSony
PLAYSTATION 3
(2006)PlayStation 4
(2013)PSP
: PlayStation Portable (2004)Vários
HP-UX
: Hewlett-Packard UniXmasking-agent
: o valor muda para este ao usar o Masking Agent for FirefoxWebTV OS
X11
: Sistema de janelas X11Tem um dispositivo que não está nesta lista? Deixe um comentário listando as propriedades do seu dispositivo e seu
navigator.platform
valor (sinta-se à vontade para usar este JSFiddle para encontrar o valor).Espero que isto ajude.
fonte
navigator.cpuClass
enavigator.appVersion
, mas nenhum deles parece confiável até agora. @hexalys: obrigado também, adicionei essas strings à lista.Posso adicionar a esta lista valores definitivos para dispositivos específicos que testei.
Onde a string está
Linux armv7l
, ela termina em minúsculasL
(para "Linux, presumivelmente?), Em vez de ser um número1
ou minúsculasI
.Para os dispositivos iOS, o teste foi realizado no Safari. Para os dispositivos Android, o teste foi realizado no navegador padrão ou Chrome se nenhum navegador padrão foi instalado.
Dos tablets Windows, o Nokia Lumia estava executando o Windows RT 8.1 com IE 11.0.9600.16476, e o MS Surface estava executando o Windows 8.1 Pro com IE 11.0.9600.16438.
Dos dispositivos Windows phones, o Nokia Lumia estava executando o Windows Phone 8.1 e o IE 11.
Telefones
Tablets
fonte
l
significa little-endian (armazenar o LSB no menor endereço, se isso fizer sentido). No entanto, existem variantes demais para controlar.Não pude postar um comentário, então deixo estes que acho que não foram mencionados acima:
"masking-agent" é uma extensão de privacidade do navegador que muda a plataforma por padrão.
O estranho e longo é um Sony Z10
fonte
Sony Z10
agora mantém a coroa para onavigator.platform
valor mais longo .