Каков список возможных значений для navigator.platform на сегодняшний день?

Я знаю, что это меняется довольно часто, но есть ли настолько полный список возможных значений, возвращаемых navigator.platform?

Список пока что:

  • HP-UX
  • Linux i686
  • Linux armv7l
  • mac68k
  • MacPPC
  • MacIntel
  • SunOS
  • Win16
  • Win32
  • WinCE
  • iPhone
  • IPOD
  • IPad
  • Android
  • BlackBerry
  • опера

3 ответа

Решение

Отказ от ответственности: обратите внимание, что это свойство отправляется браузером и поэтому может быть подделано, как строки агента пользователя. Никогда не полагайтесь на navigator объект должен быть абсолютно точным.


Определение

Насколько я знаю, нет ни одного публичного списка всех возможных navigator.platform ценности, хотя собственность была вокруг довольно долго. Что еще хуже, определение собственности менялось на протяжении многих лет. Это было:

navigator.platform указывает тип машины, для которой был скомпилирован браузер.

Это в основном означает, что свойство может вернуть Win16 когда пользователь запускает браузер, скомпилированный для 16-разрядной версии, даже если пользователь находится на 32-разрядной или 64-разрядной машине Windows.

Конечно, W3Schools перечисляет старое определение (я даже не буду ссылаться на них). W3 и MDN договорились о другом определении, хотя:

navigator.platform представляет платформу, на которой выполняется браузер.

Тем не менее, это определение немного расплывчато. Десять лет назад "платформой" была бы либо архитектура процессора, либо операционная система. В последние годы портативные и мультимедийные устройства также могут быть платформами.


Интерпретация

Как и все в Интернете, наша судьба находится в руках могущественных поставщиков браузеров. В этом случае все основные браузеры (IE, Safari, Firefox и Chrome) согласны с тем, что мой 64-разрядный компьютер с Windows является Win32 Платформа. Это означает, что они придерживаются старого определения в том, что касается Windows, потому что до сих пор ни одна из них не была скомпилирована для 64-битных систем. Посмотрите на светлую сторону, хотя: по крайней мере, они все договариваются о чем-то на этот раз.

Кажется, нам немного повезло, когда речь идет о портативных и мультимедийных устройствах. Как вы уже указали в своем вопросе, iPhone, iPod и iPad получили уникальную ценность, несмотря на то, что все они работают под управлением одной операционной системы. Все устройства Nintendo и Sony также возвращают уникальные значения. Так только сейчас navigator.platform начинает выглядеть интересно.

Но затем появилась Opera Mini для iPhone, которая снова все испортила. Opera Mini фактически возвращает номер версии кодового движка, что является совершенно иной интерпретацией platform чем что-либо, с чем мы сталкивались до сих пор. Итак, теперь мы вернулись к тому, с чего начали, и начинаем понимать, почему так мало информации по этому вопросу.

Хотя интерпретации меняются, и у меня нет полного ответа для вас, я чувствовал, что должен добавить свои 2 цента для всех, кто исследует navigator.platform имущество.


Список

Ниже приведен (безусловно, неопределенный) список значений, которые я знаю, и которые я могу проверить с несколькими источниками. Из-за расплывчатого определения я не слишком уверен, что это лучший способ заказать. На данный момент я разделил их на несколько категорий в зависимости от операционной системы или марки устройства и перечислил дополнительную информацию и даты выпуска, где это применимо.

Android

Это действительно трудно проверить на устройствах Android. Android устройства вернутся Android так же часто, как некоторые версии Linux. Например, на телефоне Nexus 5 возвращаются браузер Android и Chrome Linux armv7l, В редких случаях устройства Android могут даже вернуться null (вместо undefined).

  • Android (2008)
  • Linux: смотри заметки выше
  • null

яблоко

Что касается iOS, то Safari, Chrome и Mercury согласны, но Opera все испортила.

  • iPhone (2007)
  • iPod (2007)
  • iPad (2010)
  • iPhone Simulator: симулятор поставляется с Xcode
  • iPod Simulator: симулятор поставляется с Xcode
  • iPad Simulator: симулятор поставляется с Xcode
  • Macintosh
  • MacIntel: Процессор Intel (2005)
  • MacPPC: Процессор PowerPC
  • Mac68K: Процессор 68000
  • Pike v7.6 release 92: Opera Mini 5 на любом iPhone (2009)
  • Pike v7.8 release 517: Opera Mini 7 на любом iPhone (2012)

BlackBerry

  • BlackBerry (2003)

FreeBSD

  • FreeBSD
  • FreeBSD i386: процессор x86 (IA-32)
  • FreeBSD amd64: Процессор AMD x86-64

Linux

Серьезно ненадежный, потому что на этом построено очень много платформ. Например, Chrome на ChromeOS или Linux x86-64 оба возвращают Linux i686 поскольку это - то, для чего они были собраны.

Примечание. В Linux ARM перечислены флаги архитектуры, например armv5tej будет обозначать архитектуру ARM v5 с поддержкой Thumb ('T'), набором инструкций DSP ('E') и поддержкой Jazelle ('J').

  • Linux
  • Linux aarch64
  • Linux armv5tejl
  • Linux armv6l
  • Linux armv7l
  • Linux i686
  • Linux i686 on x86_64
  • Linux i686 X11: на основе оконной системы X11
  • Linux MSM8960_v3.2.1.1_N_R069_Rev:18: Sony Xperia V
  • Linux ppc64
  • Linux x86_64
  • Linux x86_64 X11: на основе оконной системы X11

Microsoft

Даже на 64-битной Windows 8 они все придерживаются Win32,

  • OS/2 (1994 †)
  • Pocket PC
  • Windows
  • Win16: Windows 3.1x (1992 †)
  • Win32: Windows 95 и выше
  • WinCE

Mozilla

Пустая строка возвращается в Firefox OS. Смотрите этот отчет об ошибке.

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: Опера на Symbian
  • Symbian OS

Пальма

  • PalmOS (1996)
  • webOS (2009)

Solaris

  • SunOS
  • SunOS i86pc
  • SunOS sun4u: Процессор SPARC

Sony

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

Различный

  • HP-UX: Hewlett-Packard UniX
  • masking-agent: значение меняется на это при использовании Masking Agent для Firefox
  • WebTV OS
  • X11: X11 Оконная система

Есть устройство, которого нет в этом списке? Пожалуйста, оставьте комментарий со списком свойств вашего устройства и его navigator.platform значение (не стесняйтесь использовать этот JSFiddle, чтобы найти значение).

Надеюсь это поможет.

Я могу добавить в этот список точные значения для конкретных устройств, которые я тестировал.

Где строка Linux armv7lзаканчивается в нижнем регистре L (для "Linux, предположительно?), а не число 1 или строчные I,

Для устройств iOS тестирование проводилось в Safari. Для устройств Android тестирование проводилось в стандартном браузере или Chrome, если стандартный браузер не был установлен.

Из планшетных устройств Windows Nokia Lumia работала под управлением Windows RT 8.1 с IE 11.0.9600.16476, а MS Surface работала под управлением Windows 8.1 Pro с IE 11.0.9600.16438.

Из устройств с телефонами Windows Nokia Lumia работала под управлением Windows Phone 8.1 и IE 11.

телефоны

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

таблетки

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

Я не мог оставить комментарий, поэтому я оставляю те, которые, я думаю, не упомянуты выше:

+-----+--------------+--------------------------------------+
| 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                          |
+-----+--------------+--------------------------------------+

"Агент маскировки" - это расширение конфиденциальности браузера, которое по умолчанию меняет платформу на эту.

Странный длинный Sony Z10

Другие вопросы по тегам