Pertanyaan Apa daftar nilai yang mungkin untuk navigator.platform pada hari ini?


Saya tahu bahwa ini cukup sering berubah, tetapi adakah daftar yang selengkap mungkin di luar sana tentang kemungkinan nilai yang dikembalikan oleh navigator.platform?

Daftar sejauh ini:

  • HP-UX
  • Linux i686
  • Linux armv7l
  • Mac68K
  • MacPPC
  • MacIntel
  • SunOS
  • Win16
  • Win32
  • Menggerenyet
  • iPhone
  • iPod
  • iPad
  • Android
  • BlackBerry
  • Opera

75
2017-11-09 15:55


asal


Jawaban:


Penolakan: harap dicatat bahwa properti ini dikirim oleh browser dan dapat dipalsukan, sama seperti string agen pengguna. Jangan bergantung pada navigator objek menjadi benar-benar akurat.


Definisi

Sejauh yang saya tahu, tidak ada satu pun daftar umum yang memungkinkan navigator.platform nilai, meskipun properti telah ada cukup lama. Untuk memperburuk keadaan, definisi properti berubah sepanjang tahun. Dulu:

navigator.platform menunjukkan jenis mesin yang dikompilasi peramban.

Ini pada dasarnya berarti properti dapat kembali Win16 saat pengguna menjalankan browser yang dikompilasi untuk 16-bit, meskipun pengguna menggunakan komputer Windows 32-bit atau 64-bit.

Tentu saja W3Schools mencantumkan definisi lama (saya bahkan tidak akan link ke mereka). W3 dan MDN telah menyetujui definisi yang berbeda meskipun:

navigator.platform merupakan platform tempat browser mengeksekusi.

Namun, definisi ini agak kabur. Satu dekade yang lalu 'platform' akan menjadi arsitektur CPU atau sistem operasi. Dalam beberapa tahun terakhir perangkat genggam dan media dapat menjadi platform juga.


Interpretasi

Seperti segala sesuatu di web, nasib kami ada di tangan vendor peramban yang hebat. Dalam hal ini, semua browser utama (IE, Safari, Firefox, dan Chrome) setuju bahwa mesin Windows 64-bit saya adalah a Win32 peron. Ini berarti mereka menempel pada definisi lama sejauh Windows berjalan, karena tidak satupun dari mereka dikompilasi untuk 64-bit sejauh ini. Lihatlah sisi baiknya: setidaknya mereka semua setuju pada sesuatu untuk sekali.

Sepertinya kita sedikit lebih beruntung ketika datang ke perangkat genggam dan media. Seperti yang sudah Anda nyatakan dalam pertanyaan Anda, iPhone, iPod, dan iPad masing-masing mendapat nilai unik, meskipun semuanya menjalankan sistem operasi yang sama. Semua perangkat Nintendo dan Sony mengembalikan nilai-nilai unik juga. Jadi baru sekarang navigator.platform mulai terlihat menarik.

Tapi kemudian Opera Mini untuk iPhone datang, mengacaukan segalanya lagi. Opera Mini sebenarnya mengembalikan nomor versi mesin kode, yang merupakan interpretasi yang sepenuhnya berbeda platform dari apa pun yang kami temui sejauh ini. Jadi sekarang kami kembali ke tempat kami memulai dan kami mulai memahami mengapa hanya ada sedikit informasi tentang hal ini di luar sana.

Meskipun interpretasinya berbeda-beda dan saya tidak memiliki jawaban yang lengkap untuk Anda, saya merasa sepertinya saya harus menambahkan 2 sen untuk orang lain di luar sana yang meneliti navigator.platformmilik.


Daftar

Di bawah ini adalah daftar (yang pasti tidak pasti) dari nilai-nilai yang saya tahu bahwa saya dapat memverifikasi dengan berbagai sumber. Karena definisi yang samar-samar, saya tidak terlalu yakin apa cara terbaik untuk memesan ini. Untuk saat ini saya membagi mereka ke dalam beberapa kategori berdasarkan sistem operasi atau merek perangkat dan mencantumkan informasi tambahan dan tanggal rilis jika berlaku.

Android

Sangat sulit untuk menguji perangkat Android. Perangkat Android akan kembali Android sesering beberapa versi Linux. Misalnya pada ponsel Nexus 5, browser Android dan Chrome kembali Linux armv7l. Dalam kasus yang jarang terjadi, perangkat Android bahkan dapat kembali null (dari pada undefined).

  • Android (2008)
  • Linux: lihat catatan di atas
  • null

apel

Sejauh iOS berjalan: Safari, Chrome dan Mercury setuju, tetapi Opera mengacaukan segalanya.

  • iPhone (2007)
  • iPod (2007)
  • iPad (2010)
  • iPhone Simulator: simulator dikirim dengan Xcode
  • iPod Simulator: simulator dikirim dengan Xcode
  • iPad Simulator: simulator dikirim dengan Xcode
  • Macintosh
  • MacIntel: Prosesor Intel (2005)
  • MacPPC: Prosesor PowerPC
  • Mac68K: 68.000 prosesor
  • Pike v7.6 release 92: Opera Mini 5 pada iPhone apa pun (2009)
  • Pike v7.8 release 517: Opera Mini 7 pada iPhone apa pun (2012)

BlackBerry

  • BlackBerry (2003)

FreeBSD

  • FreeBSD
  • FreeBSD i386: prosesor x86 (IA-32)
  • FreeBSD amd64: Prosesor AMD x86-64

Linux

Serius tidak dapat diandalkan karena begitu banyak platform yang dibangun di sini. Misalnya, Chrome di ChromeOS atau Linux x86-64 keduanya kembali Linux i686 karena itulah yang mereka kumpulkan.

Catatan Linux ARM daftar bendera arsitektur, mis. armv5tej akan menunjukkan arsitektur ARM v5 dengan dukungan Thumb ('T'), satu set instruksi DSP ('E'), dan dukungan Jazelle ('J').

  • Linux
  • Linux aarch64
  • Linux armv5tejl
  • Linux armv6l
  • Linux armv7l
  • Linux i686
  • Linux i686 on x86_64
  • Linux i686 X11: berdasarkan Sistem X11 Window
  • Linux MSM8960_v3.2.1.1_N_R069_Rev:18: Sony Xperia V
  • Linux ppc64
  • Linux x86_64
  • Linux x86_64 X11: berdasarkan Sistem X11 Window

Microsoft

Bahkan pada Windows 8 64-bit mereka semua menempel Win32.

  • OS/2 (1994 †)
  • Pocket PC
  • Windows
  • Win16: Windows 3.1x (1992 †)
  • Win32: Windows 95 dan lebih tinggi
  • WinCE

Mozilla

Sebuah string kosong dikembalikan di Firefox OS. Lihat laporan bug ini.

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 di Symbian
  • Symbian OS

telapak tangan

  • PalmOS (1996)
  • webOS (2009)

Solaris

  • SunOS
  • SunOS i86pc
  • SunOS sun4u: Prosesor SPARC

Sony

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

Berbagai

  • HP-UX: Hewlett-Packard UniX
  • masking-agent: nilai berubah menjadi ini saat menggunakan Masking Agent untuk Firefox
  • WebTV OS
  • X11: Sistem Jendela X11

Punya perangkat yang tidak ada dalam daftar ini? Silakan tinggalkan komentar daftar perangkat Anda dan sifatnya navigator.platform nilai (merasa bebas untuk digunakan JSFiddle ini untuk menemukan nilai).

Semoga ini membantu.


120
2017-11-09 22:37



Saya dapat menambahkan daftar ini dengan nilai definitif untuk perangkat tertentu yang telah saya uji.

Dimana senarnya Linux armv7l, itu berakhir dengan huruf kecil L (untuk "Linux, mungkin?), daripada menjadi angka 1 atau huruf kecil I.

Untuk perangkat iOS, pengujian dilakukan di Safari. Untuk perangkat Android, pengujian dilakukan di browser stok, atau Chrome jika tidak ada browser stok yang dipasang.

Dari perangkat tablet Windows, Nokia Lumia menjalankan Windows RT 8.1 dengan IE 11.0.9600.16476, dan MS Surface menjalankan Windows 8.1 Pro dengan IE 11.0.9600.16438.

Dari perangkat ponsel Windows, Nokia Lumia menjalankan Windows Phone 8.1 dan IE 11.

Ponsel

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

Tablet

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

15
2018-05-19 11:15



Saya tidak dapat mengirim komentar, jadi saya tinggalkan yang ini yang saya rasa tidak disebutkan di atas:

+-----+--------------+--------------------------------------+
| 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" adalah ekstensi privasi peramban yang mengubah platform secara default untuk itu.

Yang lama aneh adalah Sony Z10


6
2018-03-15 02:54