Який перелік можливих значень для navigator.platform на сьогодні? [зачинено]


93

Я знаю, що це досить часто змінюється, але чи існує якомога вичерпніший список можливих значень, що повертаються navigator.platform?

Поки що список:

  • HP-UX
  • Linux i686
  • Linux armv7l
  • Mac68K
  • MacPPC
  • MacIntel
  • SunOS
  • Win16
  • Win32
  • WinCE
  • iPhone
  • iPod
  • iPad
  • Android
  • BlackBerry
  • Опера

1
Ти дивився browscap.ini? Проект було перезавантажено на початку цього року.
Роберт

1
Так, але це зовсім не дає оновлений список. Наприклад, iPad в ньому немає
thomasstephn

Відповіді:


163

Застереження: будь ласка, зверніть увагу, що ця властивість надсилається браузером і, отже, може бути сфальсифікована, як і рядки агента користувача. Ніколи не покладайтесь на 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 armv8l
  • 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)

Порожній рядок повертається у веб-браузері в ОС Firefox. Дивіться цей звіт про помилки .

KaiOS

Веб-браузер на KaiOS (на базі Firefox) також повертає порожній рядок (те саме, що і 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)

Соляріс

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

Sony

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

Різні

  • HP-UX: Hewlett-Packard UniX
  • masking-agent: значення змінюється на це при використанні агента маскування для Firefox
  • WebTV OS
  • X11: Віконна система X11

Є пристрій, якого немає в цьому списку? Залиште коментар із переліком властивостей вашого пристрою та його navigator.platformвартості ( сміливо використовуйте цей JSFiddle, щоб знайти значення).

Сподіваюся, це допомагає.


Я радий допомогти, Томасе.
Роберт

FYI, деякі 64-розрядні браузери існують, навіть IE, якщо ви можете їх розкопати. Таким чином, іноді може з'являтися Win64. Моєму браузеру sniffer налаштовано бачити його та позначати браузер як 64-розрядний. Дуже вичерпний список, інакше .. спасибі. :)
Безеліт

У цьому списку є ще декілька: books.google.com/…
hexalys

@Bezelith: дякую! Я також бачив, як люди намагаються виявити 64-розрядні системи за допомогою navigator.cpuClassта navigator.appVersion, але поки що жодна з них не здається надійною. @hexalys: теж дякую, я додав ці рядки до списку.
Роберт

1
На даний момент я не можу перевірити, але чи не було б такого для Xbox 360, Xbox One, PS4?
John Odom

21

Я можу додати до цього списку остаточні значення для конкретних тестованих пристроїв.

Там, де є рядок 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

Чудове доповнення до моєї початкової спроби скласти список, хороша робота! Навіть iOS все ще може повернути інший ідентифікатор в іншому браузері - особливо Opera Mini. Нам потрібен веб-сайт, який перевіряє всі комбінації пристрою / ОС / браузера чи щось інше ...
Роберт,

1
Архітектури ARM використовують суфікси малих літер для позначення варіантних особливостей. Наскільки я знаю, це lозначає мало-ендіан (зберігання LSB за найменшою адресою, якщо це має сенс). Існує занадто багато варіантів, щоб відстежувати.
Роберт

9

Я не міг залишити коментар, тому залишаю ці, на мою думку, не згадані вище:

+-----+--------------+--------------------------------------+
| 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" - це розширення конфіденційності браузера, яке за замовчуванням змінює платформу на це.

Дивно довгий - Sony Z10


Дякую купу за ці доповнення. Я додав їх до списку. Sony Z10тепер тримає корону для найдовшого navigator.platformзначення.
Роберт,

@justin Ви випадково знаєте, яке розширення конфіденційності браузера змінює значення на "masking-agent"? редагувати: неважливо, я бачу addons.mozilla.org/en-US/firefox/addon/masking-agent , але, мабуть, мені все ще цікаво про Chrome чи інші браузери, якщо хтось знає.
user4851

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.