Jaka jest lista możliwych wartości dla navigator.platform na dzień dzisiejszy? [Zamknięte]


94

Wiem, że zmienia się to dość często, ale czy istnieje lista możliwie wyczerpująca z możliwymi wartościami zwracanymi przez navigator.platform?

Lista dotychczasowa:

  • HP-UX
  • Linux i686
  • Linux armv7l
  • Mac68K
  • MacPPC
  • MacIntel
  • SunOS
  • Win16
  • Win32
  • Grymas twarzy
  • iPhone
  • iPod
  • iPad
  • Android
  • Jeżyna
  • Opera

1
Patrzyłeś na browscap.ini? Projekt został zrestartowany na początku tego roku.
Robbert

1
Tak, ale wcale nie jest to aktualna lista. Na przykład nie ma w nim
iPada

Odpowiedzi:


164

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

  • BlackBerry (2003)

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

  • OpenBSD amd64

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.


Cieszę się, że mogłem pomóc, Thomas.
Robbert

FYI, niektóre 64-bitowe przeglądarki istnieją, nawet IE, jeśli możesz to wykopać. Dlatego czasami może pojawić się Win64. Mój sniffer przeglądarki jest ustawiony tak, aby go widzieć i oznaczać przeglądarkę jako wykonującą 64-bitową. Poza tym bardzo obszerna lista… dzięki. :)
Bezelith

Na tej liście jest jeszcze kilka: books.google.com/…
hexalys

@Bezelith: dzięki! Widziałem również, jak ludzie próbowali wykryć systemy 64-bitowe za pomocą navigator.cpuClassi navigator.appVersion, ale jak dotąd żaden z nich nie wydaje się wiarygodny. @hexalys: też dziękuję, dodałem te ciągi do listy.
Robbert

1
W tej chwili nie jestem w stanie tego sprawdzić, ale czy nie byłoby go również dla Xbox 360, Xbox One, PS4?
John Odom

21

Mogę dodać do tej listy ostateczne wartości dla konkretnych testowanych urządzeń.

Tam, gdzie znajduje się ciąg Linux armv7l, kończy się małą literą L(jak przypuszczalnie dla Linuksa?), A nie liczbą 1lub małą literą I.

W przypadku urządzeń z systemem iOS testy przeprowadzono w przeglądarce Safari. W przypadku urządzeń z systemem Android testy przeprowadzono w standardowej przeglądarce lub w Chrome, jeśli nie zainstalowano żadnej standardowej przeglądarki.

Spośród tabletów z systemem Windows Nokia Lumia pracowała pod kontrolą systemu Windows RT 8.1 z przeglądarką IE 11.0.9600.16476, a MS Surface działała pod kontrolą systemu Windows 8.1 Pro z przeglądarką IE 11.0.9600.16438.

Spośród urządzeń z systemem Windows Phone Nokia Lumia działała pod kontrolą systemu Windows Phone 8.1 i IE 11.

Telefony

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

Tablety

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

Świetny dodatek do mojej pierwszej próby sporządzenia listy, dobra robota! Jednak nawet iOS może nadal zwracać inny identyfikator w innej przeglądarce - zwłaszcza Opera Mini. Potrzebujemy strony internetowej, która testuje wszystkie kombinacje urządzenia / systemu operacyjnego / przeglądarki czy coś w tym stylu ...
Robbert

1
Architektury ARM używają sufiksów pisanych małymi literami do oznaczenia funkcji wariantowych. O ile wiem, loznacza to little-endian (przechowywanie LSB w najmniejszym adresie, jeśli ma to sens). Istnieje jednak zbyt wiele wariantów, aby je śledzić.
Robbert

9

Nie mogłem opublikować komentarza, więc zostawiam te, które chyba nie są wymienione powyżej:

+-----+--------------+--------------------------------------+
| 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” to rozszerzenie prywatności przeglądarki, które domyślnie zmienia platformę na to.

Dziwnie długi to Sony Z10


Wielkie dzięki za te dodatki. Dodałem je do listy. Sony Z10teraz posiada koronę za najdłuższą navigator.platformwartość.
Robbert

@justin Czy wiesz, które rozszerzenie prywatności przeglądarki zmienia wartość na „masking-agent”? edit: nieważne, widzę addons.mozilla.org/en-US/firefox/addon/masking-agent , ale myślę, że nadal zastanawiam się nad Chrome lub innymi przeglądarkami, jeśli ktoś wie.
user4851

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.