Je sais que cela change assez souvent, mais existe-t-il une liste aussi exhaustive que possible des valeurs possibles renvoyées par navigator.platform
?
Liste jusqu'à présent:
- HP-UX
- Linux i686
- Linux armv7l
- Mac68K
- MacPPC
- MacIntel
- SunOS
- Win16
- Win32
- Grimacer
- iPhone
- iPod
- iPad
- Android
- La mûre
- Opéra
javascript
Thomasstephn
la source
la source
browscap.ini
? Le projet a été redémarré plus tôt cette année.Réponses:
Avertissement: veuillez noter que cette propriété est envoyée par le navigateur et peut donc être falsifiée, tout comme les chaînes d'agent utilisateur. Ne comptez jamais sur l'
navigator
objet pour être complètement précis.La définition
Pour autant que je sache, il n'y a pas une seule liste publique de toutes les valeurs possibles de `navigator.platform`, même si la propriété existe depuis un certain temps. Pour aggraver les choses, la définition de la propriété a changé au fil des ans. C'était autrefois:Cela signifie essentiellement que la propriété peut être renvoyée
Win16
lorsque l'utilisateur exécute un navigateur compilé pour 16 bits, même si l'utilisateur se trouve sur une machine Windows 32 bits ou 64 bits.Bien sûr, W3Schools répertorie l'ancienne définition (je ne vais même pas y faire un lien). W3 et MDN se sont cependant mis d'accord sur une définition différente:
Pourtant, cette définition est un peu vague. Il y a dix ans, une «plate-forme» était soit une architecture de processeur, soit un système d'exploitation. Ces dernières années, les appareils portables et multimédias peuvent également être des plates-formes.
L'interprétation
Comme pour tout sur le Web, notre destin est entre les mains des puissants fournisseurs de navigateurs. Dans ce cas, tous les principaux navigateurs (IE, Safari, Firefox et Chrome) conviennent que ma machine Windows 64 bits est une plate-forme `Win32`. Cela signifie qu'ils s'en tiennent à l'ancienne définition pour Windows, car aucun d'entre eux n'est compilé pour 64 bits jusqu'à présent. Regardez du bon côté cependant: au moins ils sont tous d'accord sur quelque chose pour une fois.Il semble que nous soyons un peu plus chanceux en ce qui concerne les appareils portables et multimédias. Comme vous l'avez déjà dit dans votre question, l'iPhone, l'iPod et l'iPad ont chacun une valeur unique, même s'ils utilisent tous le même système d'exploitation. Tous les appareils de Nintendo et de Sony renvoient également des valeurs uniques. Alors seulement maintenant
navigator.platform
commence à paraître intéressant.Mais ensuite Opera Mini pour iPhone arrive, gâchant à nouveau les choses. Opera Mini renvoie en fait un numéro de version du moteur de code, ce qui est une interprétation complètement différente
platform
de tout ce que nous avons rencontré jusqu'à présent. Alors maintenant, nous sommes revenus là où nous avons commencé et nous commençons à comprendre pourquoi il y a si peu d'informations sur ce sujet là-bas.Même si les interprétations varient et que je n'ai pas de réponse complète pour vous, j'ai eu le sentiment que je devrais ajouter mes 2 cents pour quiconque recherche la
navigator.platform
propriété.La liste
Vous trouverez ci-dessous une liste (certainement non définitive) des valeurs que je connais que je pourrais vérifier avec plusieurs sources. En raison de la définition vague, je ne sais pas trop quelle est la meilleure façon de les commander. Pour l'instant, je les ai divisés en quelques catégories en fonction du système d'exploitation ou de la marque de l'appareil et j'ai répertorié des informations supplémentaires et des dates de sortie, le cas échéant.Android
Il est vraiment difficile de tester les appareils Android. Les appareils Android reviendront
Android
aussi souvent que certaines versions de Linux. Par exemple, sur un téléphone Nexus 5, le navigateur Android et Chrome reviennentLinux armv7l
. Dans de rares cas, les appareils Android peuvent même revenirnull
(au lieu deundefined
).Android
(2008)Linux
: voir les notes ci-dessusnull
Pomme
En ce qui concerne iOS: Safari, Chrome et Mercury sont d'accord, mais Opera gâche les choses.
iPhone
(2007)iPod
(2007)iPad
(2010)iPhone Simulator
: simulateur livré avec XcodeiPod Simulator
: simulateur livré avec XcodeiPad Simulator
: simulateur livré avec XcodeMacintosh
MacIntel
: Processeur Intel (2005)MacPPC
: Processeur PowerPCMac68K
: Processeur 68000Pike v7.6 release 92
: Opera Mini 5 sur n'importe quel iPhone (2009)Pike v7.8 release 517
: Opera Mini 7 sur n'importe quel iPhone (2012)La mûre
BlackBerry
(2003)FreeBSD
FreeBSD
FreeBSD i386
: processeur x86 (IA-32)FreeBSD amd64
: Processeur AMD x86-64Linux
Sérieusement peu fiable car de nombreuses plates-formes sont construites sur cela. Par exemple, Chrome sur ChromeOS ou Linux x86-64 reviennent tous les deux
Linux i686
car c'est pour cela qu'ils ont été compilés.Remarque Linux ARM répertorie les indicateurs d'architecture, par exemple
armv5tej
dénoterait une architecture ARM v5 avec le support Thumb ('T'), un jeu d'instructions DSP ('E') et le support Jazelle ('J').Linux
Linux aarch64
Linux armv5tejl
Linux armv6l
Linux armv7l
Linux armv8l
Linux i686
Linux i686 on x86_64
Linux i686 X11
: basé sur X11 Window SystemLinux MSM8960_v3.2.1.1_N_R069_Rev:18
: Sony Xperia VLinux ppc64
Linux x86_64
Linux x86_64 X11
: basé sur X11 Window SystemMicrosoft
Même sur un Windows 8 64 bits, ils s'en tiennent tous
Win32
.OS/2
(1994 †)Pocket PC
Windows
Win16
: Windows 3.1x (1992 †)Win32
: Windows 95 et plusWinCE
Mozilla (Firefox OS)
Une chaîne vide est renvoyée dans le navigateur Web sur Firefox OS. Voir ce rapport de bogue .
KaiOS
Le navigateur Web sur KaiOS (basé sur Firefox) renvoie également la chaîne vide (identique à Firefox OS). Voir ce rapport de bogue .
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 sur SymbianSymbian OS
Paume
PalmOS
(1996)webOS
(2009)Solaris
SunOS
SunOS i86pc
SunOS sun4u
: Processeur SPARCSony
PLAYSTATION 3
(2006)PlayStation 4
(2013)PSP
: PlayStation Portable (2004)Divers
HP-UX
: Hewlett-Packard UniXmasking-agent
: la valeur est modifiée lors de l'utilisation de Masking Agent pour FirefoxWebTV OS
X11
: Système de fenêtre X11Vous avez un appareil qui ne figure pas sur cette liste? Veuillez laisser un commentaire listant les propriétés de votre appareil et sa
navigator.platform
valeur (n'hésitez pas à utiliser ce JSFiddle pour trouver la valeur).J'espère que cela t'aides.
la source
navigator.cpuClass
etnavigator.appVersion
, mais aucun des deux ne semble fiable jusqu'à présent. @hexalys: merci aussi, j'ai ajouté ces chaînes à la liste.Je peux ajouter à cette liste des valeurs définitives pour des appareils spécifiques que j'ai testés.
Là où se trouve la chaîne
Linux armv7l
, elle se termine par une minusculeL
(pour «Linux, probablement?), Plutôt que par un nombre1
ou une minusculeI
.Pour les appareils iOS, les tests ont été effectués dans Safari. Pour les appareils Android, les tests ont été effectués dans le navigateur de stock ou dans Chrome si aucun navigateur de stock n'était installé.
Parmi les tablettes Windows, le Nokia Lumia exécutait Windows RT 8.1 avec IE 11.0.9600.16476 et le MS Surface exécutait Windows 8.1 Pro avec IE 11.0.9600.16438.
Parmi les appareils Windows Phone, le Nokia Lumia exécutait Windows Phone 8.1 et IE 11.
Téléphone (s
Comprimés
la source
l
signifie little-endian (stocker le LSB dans la plus petite adresse, si cela a du sens). Il y a cependant beaucoup trop de variantes à suivre.Je n'ai pas pu poster de commentaire, donc je laisse ceux-ci je pense ne pas être mentionnés ci-dessus:
"masking-agent" est une extension de confidentialité du navigateur qui change la plate-forme par défaut.
L'étrange long est un Sony Z10
la source
Sony Z10
détient maintenant la couronne pour lanavigator.platform
valeur la plus longue .