Uwaga: należy pamiętać, że ta właściwość jest wysyłana przez przeglądarkę i dlatego może być sfałszowana, podobnie jak ciągi agenta użytkownika. Nigdy nie polegaj na tym, że navigatorprzedmiot będzie całkowicie dokładny.
Definicja
O ile wiem, nie ma jednej publicznej listy wszystkich możliwych wartości argumentu `navigator.platform`, mimo że właściwość istnieje już od jakiegoś czasu. Co gorsza, definicja nieruchomości zmieniała się na przestrzeni lat. Kiedyś było:
navigator.platform wskazuje typ maszyny, dla której skompilowano przeglądarkę.
Zasadniczo oznacza to, że nieruchomość może wrócić Win16 gdy użytkownik uruchamia przeglądarkę skompilowaną dla 16-bitowej wersji, nawet jeśli użytkownik korzysta z 32-bitowej lub 64-bitowej maszyny z systemem Windows.
Oczywiście W3Schools wymienia starą definicję (nawet nie zamierzam do nich dodawać linków). W3 i MDN uzgodnili jednak inną definicję:
navigator.platform reprezentuje platformę, na której działa przeglądarka.
Ta definicja jest jednak nieco niejasna. Dziesięć lat temu „platforma” byłaby architekturą procesora lub systemem operacyjnym. W ostatnich latach urządzenia przenośne i urządzenia multimedialne również mogą być platformami.
Interpretacja
Podobnie jak w przypadku wszystkiego w sieci, nasz los jest w rękach potężnych dostawców przeglądarek. W tym przypadku wszystkie główne przeglądarki (IE, Safari, Firefox i Chrome) zgadzają się, że mój 64-bitowy komputer z systemem Windows jest platformą Win32. Oznacza to, że trzymają się starej definicji, jeśli chodzi o system Windows, ponieważ żaden z nich nie jest do tej pory kompilowany dla wersji 64-bitowej. Ale spójrz na dobrą stronę: przynajmniej wszyscy zgadzają się co do jednego.
Wygląda na to, że mamy trochę więcej szczęścia, jeśli chodzi o urządzenia przenośne i urządzenia multimedialne. Jak już powiedziałeś w swoim pytaniu, iPhone, iPod i iPad mają unikalną wartość, mimo że wszystkie mają ten sam system operacyjny. Wszystkie urządzenia Nintendo i Sony również zwracają wyjątkowe wartości. Więc dopiero teraz navigator.platformzaczyna wyglądać ciekawie.
Ale potem pojawia się Opera Mini na iPhone'a, ponownie psując sytuację. Opera Mini w rzeczywistości zwraca numer wersji silnika kodu, który jest zupełnie inną interpretacją platformniż wszystko, z czym do tej pory się spotkaliśmy. Więc teraz wracamy do punktu, w którym zaczęliśmy i zaczynamy rozumieć, dlaczego jest tam tak mało informacji na ten temat.
Chociaż interpretacje są różne i nie mam dla ciebie pełnej odpowiedzi, czułem, że powinienem dodać moje 2 centy dla każdego, kto szuka informacji o tej navigator.platformnieruchomości.
Lista
Poniżej znajduje się (zdecydowanie nieokreślona) lista wartości, które znam, a które mogę zweryfikować z wieloma źródłami. Z powodu niejasnej definicji nie jestem pewien, jaki jest najlepszy sposób ich zamówienia. Na razie podzieliłem je na kilka kategorii w oparciu o system operacyjny lub markę urządzenia i wymieniłem dodatkowe informacje i daty wydania, jeśli dotyczy.
Android
Naprawdę trudno jest przetestować na urządzeniach z Androidem. Urządzenia z Androidem będą wracać Androidrównie często, jak niektóre wersje Linuksa. Na przykład na telefonie Nexus 5 powracają zarówno przeglądarka Android, jak i Chrome Linux armv7l. W rzadkich przypadkach urządzenia z Androidem mogą nawet wrócić null(zamiast undefined).
Android (2008)
Linux: patrz uwagi powyżej
null
jabłko
Jeśli chodzi o iOS: Safari, Chrome i Mercury zgadzają się, ale Opera wszystko psuje.
iPhone (2007)
iPod (2007)
iPad (2010)
iPhone Simulator: symulator dostarczany z Xcode
iPod Simulator: symulator dostarczany z Xcode
iPad Simulator: symulator dostarczany z Xcode
Macintosh
MacIntel: Procesor Intel (2005)
MacPPC: Procesor PowerPC
Mac68K: Procesor 68000
Pike v7.6 release 92: Opera Mini 5 na dowolnym iPhonie (2009)
Pike v7.8 release 517: Opera Mini 7 na dowolnym iPhonie (2012)
Jeżyna
FreeBSD
FreeBSD
FreeBSD i386: procesor x86 (IA-32)
FreeBSD amd64: Procesor AMD x86-64
Linux
Poważnie zawodne, ponieważ tak wiele platform jest na tym zbudowanych. Na przykład Chrome na ChromeOS lub Linux x86-64 powraca, Linux i686ponieważ do tego zostały skompilowane.
Uwaga Linux ARM wyświetla flagi architektury, np. armv5tejOznaczałoby architekturę ARM v5 z obsługą Thumb ('T'), zestawem instrukcji DSP ('E') i obsługą Jazelle ('J').
Linux
Linux aarch64
Linux armv5tejl
Linux armv6l
Linux armv7l
Linux armv8l
Linux i686
Linux i686 on x86_64
Linux i686 X11: oparty na systemie okien X11
Linux MSM8960_v3.2.1.1_N_R069_Rev:18: Sony Xperia V
Linux ppc64
Linux x86_64
Linux x86_64 X11: oparty na systemie okien X11
Microsoft
Nawet w 64-bitowym systemie Windows 8 wszyscy się trzymają Win32.
OS/2 (1994 †)
Pocket PC
Windows
Win16: Windows 3.1x (1992 †)
Win32: Windows 95 i nowsze
WinCE
Mozilla (Firefox OS)
W przeglądarce internetowej w systemie Firefox OS zwracany jest pusty ciąg. Zobacz ten raport o błędzie .
KaiOS
Przeglądarka internetowa na KaiOS (oparta na Firefoksie) również zwraca pusty ciąg (tak samo jak w Firefox OS). Zobacz ten raport o błędzie .
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: Opera w systemie Symbian
Symbian OS
Palma
PalmOS (1996)
webOS (2009)
Solaris
SunOS
SunOS i86pc
SunOS sun4u: Procesor SPARC
Sony
PLAYSTATION 3 (2006)
PlayStation 4 (2013)
PSP: PlayStation Portable (2004)
Różny
HP-UX: Hewlett-Packard UniX
masking-agent: wartość zmienia się na tę podczas korzystania z agenta maskowania dla przeglądarki Firefox
WebTV OS
X11: System okien X11
Masz urządzenie, którego nie ma na tej liście? Zostaw komentarz zawierający listę właściwości twojego urządzenia i jego navigator.platformwartość (możesz użyć tego JSFiddle, aby znaleźć wartość).
Mam nadzieję że to pomoże.
browscap.ini? Projekt został zrestartowany na początku tego roku.