Quelle est la liste des valeurs possibles pour navigator.platform à partir d'aujourd'hui?

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

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'agents utilisateurs. Ne comptez jamais que l'objet navigator soit 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 point. Pour aggraver les choses, la définition de la propriété a changé au cours des années. C'était:

navigator.platform indique le type de machine pour lequel le navigateur a été compilé.

Cela signifie essentiellement que la propriété peut renvoyer Win16 lorsque l'utilisateur exécute un navigateur compilé pour 16 bits, même si l'utilisateur est 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 lier à eux). W3 et MDN sont convenus d'une définition différente:

navigator.platform représente la plate-forme sur laquelle le navigateur est en cours d'exécution.

Pourtant, cette définition est un peu vague. Il y a une décennie, une «plate-forme» serait soit une architecture CPU, soit un système d'exploitation. Au cours des dernières années, les périphériques 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 fournisseurs de navigateurs puissants. 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 respectent l'ancienne définition jusqu'à Windows, car aucun d'entre eux n'est compilé pour 64 bits jusqu'à présent. Regardez le 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 périphériques portables et les périphériques multimédias. Comme vous l'avez déjà indiqué dans votre question, l'iPhone, l'iPod et l'iPad ont chacun une valeur unique, même s'ils exécutent tous le même système d'exploitation. Tous les appareils Nintendo et Sony renvoient également des valeurs uniques. Donc, seul maintenant navigator.platform commence à paraître intéressant.

Mais ensuite, Opera Mini pour iPhone arrive, déranger les choses à nouveau. Opera Mini retourne réellement un numéro de version du moteur de code, qui est une interprétation complètement différente de la platformplatform que tout ce que nous avons rencontré jusqu'ici. Donc, maintenant, nous sommes de retour où nous avons commencé et nous commençons à comprendre pourquoi il y a si peu d'informations sur ce sujet.

Même si les interprétations varient et je n'ai pas une réponse complète pour vous, j'ai eu l'impression que je devrais ajouter mes 2 cents pour quiconque à la recherche de la propriété navigator.platform .

La liste

Voici une liste (définitivement non définie) des valeurs que je connais que je pourrais vérifier avec plusieurs sources. En raison de la définition vague, je ne suis pas trop sûr de la meilleure façon de 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 énuméré 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 renverront Android tout aussi souvent qu'une version de Linux. Par exemple, sur un téléphone Nexus 5, le navigateur Android et Chrome renvoient Linux armv7l . Dans de rares cas, les appareils Android peuvent même retourner null (au lieu de undefined ).

  • Android (2008)
  • Linux : voir les notes ci-dessus
  • null

Pomme

En ce qui concerne iOS: Safari, Chrome et Mercury sont d'accord, mais Opera se déguise.

  • iPhone (2007)
  • iPod (2007)
  • iPad (2010)
  • iPhone Simulator : simulateur livré avec Xcode
  • iPod Simulator : simulateur livré avec Xcode
  • iPad Simulator : simulateur livré avec Xcode
  • Macintosh
  • MacIntel : processeur Intel (2005)
  • MacPPC : processeur PowerPC
  • Mac68K : processeur 68000
  • Pike 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
  • Processeur FreeBSD i386 : x86 (IA-32)
  • FreeBSD amd64 : processeur AMD x86-64

Linux

Sérieusement peu fiable car tant de plates-formes sont construites sur cette base. Par exemple, Chrome sur ChromeOS ou Linux x86-64 renvoie Linux i686 car c'est ce qu'ils ont compilé.

Note Linux ARM répertorie les drapeaux d'architecture, par exemple armv5tej désignerait une architecture ARM v5 avec support de pouce ('T'), un jeu d'instructions DSP ('E') et Jazelle ('J').

  • Linux
  • Linux aarch64
  • Linux armv5tejl
  • Linux armv6l
  • Linux armv7l
  • Linux i686
  • Linux i686 on x86_64
  • Linux i686 X11 : basé sur X11 Window System
  • Linux MSM8960_v3.2.1.1_N_R069_Rev:18 : Sony Xperia V
  • Linux ppc64
  • Linux x86_64
  • Linux x86_64 X11 : basé sur X11 Window System

Microsoft

Même sur un Windows 8 64 bits, ils s'accrochent à Win32 .

  • OS/2 (1994 †)
  • Pocket PC
  • Windows
  • Win16 : Windows 3.1x (1992 †)
  • Win32 : Windows 95 et plus
  • WinCE

Mozilla

Une chaîne vide est renvoyée sur le système d'exploitation Firefox. 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 Symbian
  • Symbian OS

Paume

  • PalmOS (1996)
  • webOS (2009)

Solaris

  • SunOS
  • SunOS i86pc
  • SunOS sun4u : processeur SPARC

Sony

  • PLAYSTATION 3 (2006)
  • PlayStation 4 (2013)
  • PSP : PlayStation Portable (2004)

Divers

  • HP-UX : Hewlett-Packard UniX
  • Masking masking-agent : la valeur est modifiée lorsque vous utilisez Masking Agent for Firefox
  • WebTV OS
  • Système de fenêtre X11 : X11

Avez-vous un appareil qui n'est pas sur cette liste? Veuillez laisser un commentaire répertoriant les propriétés de votre appareil et sa valeur navigator.platform (n'hésitez pas à utiliser cette JSFiddle pour trouver la valeur).

J'espère que cela t'aides.

Je peux ajouter à cette liste des valeurs définitives pour les périphériques spécifiques que j'ai testés.

Où la chaîne est Linux armv7l , elle se termine en minuscule L (pour "Linux, vraisemblablement?), Plutôt que d'être un numéro 1 ou minuscule I

Pour les périphériques iOS, les tests ont été effectués dans Safari. Pour les appareils Android, les tests ont été effectués dans le navigateur stock, ou Chrome si aucun navigateur stock n'a été installé.

Parmi les tablettes Windows, Nokia Lumia exécutait Windows RT 8.1 avec IE 11.0.9600.16476 et MS Surface exécutait Windows 8.1 Pro avec IE 11.0.9600.16438.

Parmi les appareils Windows, le Nokia Lumia exécutait Windows Phone 8.1 et IE 11.

Téléphones

 Device OS window.navigator.platform --------------------------------------------------------------------------- iPhone 4 iOS 7.1 iPhone iPhone 5 iOS 7.1.1 iPhone iPhone 5c iOS 7.1 iPhone iPhone 5s iOS 7.1 iPhone Samsung Galaxy S2 Android 4.1.2 Linux armv7l Samsung Galaxy S3 Mini Android 4.1.2 Linux armv7l Samsung Galaxy S3 Android 4.3 Linux armv7l Samsung Galaxy S4 Android 4.4.2 Linux armv7l Samsung Galaxy Note 3 Android 4.4.2 Linux armv7l Samsung Galaxy S6 Android 5 Linux aarch64 Nexus 4 Android 4.4.2 Linux armv7l Nexus 5 Android 4.4.2 Linux armv7l HTC One Android 4.4.2 Linux armv7l Sony Xperia Z Android 4.2.2 Linux armv7l Motorola Moto G Android 4.4.2 Linux armv7l Nokia Lumia 1520 Windows 8.1 Win32 

Comprimés

 Device OS window.navigator.platform --------------------------------------------------------------------------- iPad 2nd generation iOS 6.1.3 iPad iPad 2nd generation iOS 7.0.3 iPad iPad 4th generation iOS 6.1.2 iPad iPad 4th generation iOS 6.1.3 iPad iPad mini (non retina) iOS 6.1.3 iPad iPad mini (retina) iOS 7.0.3 iPad Samsung Galaxy Tab 2 7" Android 4.0.3 Linux armv7l Samsung Galaxy Tab 3 7" Android 4.1.2 Linux armv7l Samsung Galaxy Tab 3 Android 4.2.2 Linux i686 Samsung Galaxy Note 10.1 (2012) Android 4.1.2 Linux armv7l Samsung Galaxy Note 10.1 (2014) Android 4.3 Linux armv7l Nexus 7 (2012) 7" Android 4.4.3 Linux armv7l Nexus 7 (2013) 7" Android 4.3 Linux armv7l Nexus 10 Android 4.4.2 Linux armv7l Lenovo Yoga Android 4.2.2 Linux armv7l Sony Xperia Z Android 4.3 Linux armv7l Tesco Hudl 7" Android 4.2.2 Linux armv7l Kindle Fire 7" (2012) Unknown Linux armv7l Kindle Fire HDX 7" (2013) Unknown Linux armv7l Asus Transformer Pad TF300T Android 4.0.3 Linux armv7l Nokia Lumia 2520 Windows RT 8.1 Win32 MS Surface Tablet Pro Windows 8.1 Pro Win64 Desktop PC (HP) Windows 7 Ent. Win32 Desktop PC (iMac) OSX 10.8.5 MacIntel 

Je ne pourrais pas publier un commentaire, donc je quitte ceux qui, je pense, ne sont pas mentionnés ci-dessus:

 +-----+--------------+--------------------------------------+ | iid | item | value | +-----+--------------+--------------------------------------+ | 448 | nav_platform | Linux armv7l | | 454 | nav_platform | ARM | | 455 | nav_platform | Linux x86_64 | | 457 | nav_platform | PlayStation 4 | | 459 | nav_platform | masking-agent | | 460 | nav_platform | OpenBSD amd64 | | 464 | nav_platform | FreeBSD amd64 | | 465 | nav_platform | Linux armv5tejl | | 466 | nav_platform | Symbian OS | | 467 | nav_platform | New Nintendo 3DS | | 470 | nav_platform | Linux armv6l | | 471 | nav_platform | FreeBSD | | 472 | nav_platform | Symbian | | 473 | nav_platform | Linux MSM8960_V3.2.1.1_N_R069_Rev:18 | | 476 | nav_platform | Linux aarch64 | | 479 | nav_platform | Linux i686 on x86_64 | | 480 | nav_platform | Linux ppc64 | +-----+--------------+--------------------------------------+ 

"Masking-agent" est une extension de confidentialité du navigateur qui modifie la plate-forme par défaut.

Le long étrange est un Sony Z10