Saya tahu bahwa ini cukup sering berubah, tetapi adakah daftar selengkap mungkin di luar sana dari kemungkinan nilai yang dikembalikan navigator.platform
?
Daftar sejauh ini:
- HP-UX
- Linux i686
- Linux armv7l
- Mac68K
- MacPPC
- MacIntel
- SunOS
- Menang16
- Win32
- Menggerenyet
- iPhone
- iPod
- iPad
- Android
- BlackBerry
- Opera
javascript
thomasstephn
sumber
sumber
browscap.ini
? Proyek ini telah dimulai ulang awal tahun ini.Jawaban:
Penafian: harap dicatat bahwa properti ini dikirim oleh browser dan dengan demikian dapat dipalsukan, seperti string agen pengguna. Jangan pernah mengandalkan
navigator
objek agar akurat sepenuhnya.Definisi
Sejauh yang saya tahu, tidak ada satu pun daftar publik dari semua kemungkinan nilai `navigator.platform`, meskipun properti tersebut sudah ada cukup lama. Lebih buruk lagi, definisi properti berubah selama bertahun-tahun. Dulu:Ini pada dasarnya berarti properti dapat kembali
Win16
ketika pengguna menjalankan browser yang dikompilasi untuk 16-bit, meskipun pengguna menggunakan mesin Windows 32-bit atau 64-bit.Tentu saja W3Schools mencantumkan definisi lama (saya bahkan tidak akan menautkannya). W3 dan MDN telah menyepakati definisi yang berbeda:
Namun, definisi ini masih agak kabur. Satu dekade yang lalu 'platform' bisa berupa arsitektur CPU atau sistem operasi. Dalam beberapa tahun terakhir perangkat genggam dan media dapat menjadi platform juga.
Interpretasinya
Seperti semua yang ada di web, nasib kita ada di tangan vendor browser yang hebat. Dalam hal ini, semua browser utama (IE, Safari, Firefox dan Chrome) setuju bahwa mesin Windows 64-bit saya adalah platform `Win32`. Ini berarti mereka berpegang pada definisi lama sejauh Windows berjalan, karena tidak satupun dari mereka yang dikompilasi untuk 64-bit sejauh ini. Lihatlah sisi baiknya: setidaknya mereka semua menyetujui sesuatu untuk sekali.Sepertinya kami sedikit lebih beruntung dalam hal perangkat genggam dan media. Seperti yang telah Anda nyatakan dalam pertanyaan Anda, iPhone, iPod dan iPad masing-masing memiliki nilai yang unik, meskipun semuanya menjalankan sistem operasi yang sama. Semua perangkat Nintendo dan Sony juga mengembalikan nilai unik. Jadi baru sekarang
navigator.platform
mulai terlihat menarik.Tapi kemudian Opera Mini untuk iPhone muncul, mengacaukan segalanya lagi. Opera Mini sebenarnya mengembalikan nomor versi mesin kode, yang merupakan interpretasi yang sama sekali berbeda dari
platform
apa pun yang kami temui sejauh ini. Jadi sekarang kita kembali ke awal dan kita mulai memahami mengapa hanya ada sedikit informasi tentang hal ini di luar sana.Meskipun interpretasinya bervariasi dan saya tidak memiliki jawaban lengkap untuk Anda, saya merasa saya harus menambahkan 2 sen saya untuk orang lain di luar sana yang meneliti
navigator.platform
properti tersebut.Daftar
Di bawah ini adalah daftar (pasti tidak pasti) dari nilai-nilai yang saya tahu yang dapat saya verifikasi dengan berbagai sumber. Karena definisi yang tidak jelas, saya tidak terlalu yakin cara terbaik untuk memesan ini. Untuk saat ini saya membaginya menjadi 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 kembaliLinux armv7l
. Dalam kasus yang jarang terjadi, perangkat Android bahkan dapat kembalinull
(bukanundefined
).Android
(2008)Linux
: lihat catatan di atasnull
apel
Sejauh iOS berjalan: Safari, Chrome dan Mercury setuju, tetapi Opera mengacaukan segalanya.
iPhone
(2007)iPod
(2007)iPad
(2010)iPhone Simulator
: simulator dikirimkan dengan XcodeiPod Simulator
: simulator dikirimkan dengan XcodeiPad Simulator
: simulator dikirimkan dengan XcodeMacintosh
MacIntel
: Prosesor Intel (2005)MacPPC
: Prosesor PowerPCMac68K
: 68000 prosesorPike v7.6 release 92
: Opera Mini 5 di semua iPhone (2009)Pike v7.8 release 517
: Opera Mini 7 di semua iPhone (2012)BlackBerry
BlackBerry
(2003)FreeBSD
FreeBSD
FreeBSD i386
: prosesor x86 (IA-32)FreeBSD amd64
: Prosesor AMD x86-64Linux
Serius tidak dapat diandalkan karena begitu banyak platform dibangun di atas ini. Misalnya, Chrome di ChromeOS atau Linux x86-64 keduanya kembali
Linux i686
seperti yang mereka kompilasi.Catatan Linux ARM mencantumkan tanda arsitektur, misalnya
armv5tej
akan menunjukkan arsitektur ARM v5 dengan dukungan Thumb ('T'), set instruksi DSP ('E'), dan dukungan Jazelle ('J').Linux
Linux aarch64
Linux armv5tejl
Linux armv6l
Linux armv7l
Linux armv8l
Linux i686
Linux i686 on x86_64
Linux i686 X11
: berdasarkan Sistem Jendela X11Linux MSM8960_v3.2.1.1_N_R069_Rev:18
: Sony Xperia VLinux ppc64
Linux x86_64
Linux x86_64 X11
: berdasarkan Sistem Jendela X11Microsoft
Bahkan pada 64-bit Windows 8 mereka semua tetap berpegang
Win32
.OS/2
(1994 †)Pocket PC
Windows
Win16
: Windows 3.1x (1992 †)Win32
: Windows 95 dan yang lebih baruWinCE
Mozilla (Firefox OS)
String kosong dikembalikan di browser web pada Firefox OS. Lihat laporan bug ini .
KaiOS
Browser web di KaiOS (berdasarkan Firefox) juga mengembalikan string kosong (sama seperti 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 SymbianSymbian OS
telapak tangan
PalmOS
(1996)webOS
(2009)Solaris
SunOS
SunOS i86pc
SunOS sun4u
: Prosesor SPARCSony
PLAYSTATION 3
(2006)PlayStation 4
(2013)PSP
: PlayStation Portable (2004)Berbagai
HP-UX
: Hewlett-Packard UniXmasking-agent
: nilai berubah menjadi ini saat menggunakan Masking Agent untuk FirefoxWebTV OS
X11
: Sistem Jendela X11Punya perangkat yang tidak ada dalam daftar ini? Silakan tinggalkan komentar yang mencantumkan properti perangkat Anda dan
navigator.platform
nilainya (jangan ragu untuk menggunakan JSFiddle ini untuk menemukan nilainya).Semoga ini membantu.
sumber
navigator.cpuClass
dannavigator.appVersion
, tetapi sejauh ini tidak ada yang dapat diandalkan. @hexalys: terima kasih juga, saya telah menambahkan string itu ke daftar.Saya dapat menambahkan ke daftar ini dengan nilai pasti untuk perangkat tertentu yang telah saya uji.
Dimana stringnya
Linux armv7l
, itu diakhiri dengan huruf kecilL
(untuk "Linux, mungkin?), Bukan angka1
atau huruf kecilI
.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.
Telepon
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
sumber
l
singkatan dari little-endian (menyimpan LSB di alamat terkecil, jika itu masuk akal). Ada terlalu banyak varian untuk diperhatikan.Saya tidak dapat mengirim komentar, jadi saya meninggalkan yang ini yang menurut saya 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 browser yang mengubah platform secara default ke itu.
Yang panjang dan aneh adalah Sony Z10
sumber
Sony Z10
sekarang memegang mahkota untuknavigator.platform
nilai terpanjang .