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