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:
navigator.platform
indica o tipo de máquina para o qual o navegador foi compilado.
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:
navigator.platform
representa a plataforma na qual o navegador está sendo executado.
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 é umWin32
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ó agoranavigator.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 deplatform
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 retornam Linux armv7l
. Em casos raros, os dispositivos Android podem até retornar null
(em vez de undefined
).
Android
(2008)
Linux
: veja as notas acima
null
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 Xcode
iPod Simulator
: simulador enviado com Xcode
iPad Simulator
: simulador enviado com Xcode
Macintosh
MacIntel
: Processador Intel (2005)
MacPPC
: Processador PowerPC
Mac68K
: 68000 processador
Pike v7.6 release 92
: Opera Mini 5 em qualquer iPhone (2009)
Pike v7.8 release 517
: Opera Mini 7 em qualquer iPhone (2012)
Amora
FreeBSD
FreeBSD
FreeBSD i386
: processador x86 (IA-32)
FreeBSD amd64
: Processador AMD x86-64
Linux
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 X11
Linux MSM8960_v3.2.1.1_N_R069_Rev:18
: Sony Xperia V
Linux ppc64
Linux x86_64
Linux x86_64 X11
: baseado no sistema de janelas X11
Microsoft
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 superior
WinCE
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
Symbian / S40
Nokia_Series_40
(1999 †)
S60
(2002 †)
Symbian
: Opera em Symbian
Symbian OS
Palma
PalmOS
(1996)
webOS
(2009)
Solaris
SunOS
SunOS i86pc
SunOS sun4u
: Processador SPARC
Sony
PLAYSTATION 3
(2006)
PlayStation 4
(2013)
PSP
: PlayStation Portable (2004)
Vários
HP-UX
: Hewlett-Packard UniX
masking-agent
: o valor muda para este ao usar o Masking Agent for Firefox
WebTV OS
X11
: Sistema de janelas X11
Tem 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.
browscap.ini
? O projeto foi reiniciado no início deste ano.