รายการค่าที่เป็นไปได้สำหรับ navigator.platform ณ วันนี้คืออะไร? [ปิด]


95

ฉันรู้ว่าสิ่งนี้เปลี่ยนแปลงค่อนข้างบ่อย แต่มีรายการที่ละเอียดถี่ถ้วนที่สุดเท่าที่จะเป็นไปได้จากค่าที่เป็นไปได้ที่ส่งคืนมาnavigator.platformหรือไม่?

รายการจนถึงตอนนี้:

  • HP-UX
  • ลินุกซ์ i686
  • ลินุกซ์ armv7l
  • Mac68K
  • MacPPC
  • MacIntel
  • SunOS
  • ชนะ 16
  • ชนะ 32
  • WinCE
  • iPhone
  • iPod
  • iPad
  • Android
  • BlackBerry
  • Opera

1
คุณได้ดูbrowscap.ini? โครงการนี้ได้รับการรีบูตเมื่อต้นปีนี้
Robbert

1
ใช่ แต่ไม่ได้ให้รายการที่อัปเดตเลย ตัวอย่างเช่น iPad ไม่อยู่ในนั้น
thomasstephn

คำตอบ:


165

ข้อจำกัดความรับผิดชอบ:โปรดทราบว่าคุณสมบัตินี้ถูกส่งโดยเบราว์เซอร์และสามารถปลอมแปลงได้เช่นเดียวกับสตริงตัวแทนผู้ใช้ อย่าพึ่งพาnavigatorวัตถุให้ถูกต้องสมบูรณ์

คำนิยาม

เท่าที่ฉันรู้ว่าไม่มีรายการสาธารณะของค่า "navigator.platform" ที่เป็นไปได้ทั้งหมดแม้ว่าคุณสมบัตินั้นจะมีอยู่ไม่น้อย คำจำกัดความของสถานที่ให้บริการจึงเปลี่ยนไปตลอดหลายปีที่ผ่านมา เคยเป็น:

navigator.platform ระบุประเภทเครื่องที่คอมไพล์เบราว์เซอร์

โดยทั่วไปหมายความว่าคุณสมบัติสามารถคืนค่าได้Win16เมื่อผู้ใช้เรียกใช้เบราว์เซอร์ที่คอมไพล์เป็น 16 บิตแม้ว่าผู้ใช้จะใช้เครื่อง Windows 32 บิตหรือ 64 บิตก็ตาม

แน่นอนว่า W3Schools แสดงคำจำกัดความเดิม (ฉันจะไม่เชื่อมโยงไปถึงพวกเขาด้วยซ้ำ) W3และMDNได้ตกลงในคำจำกัดความที่แตกต่างกันแม้ว่า:

navigator.platform แสดงถึงแพลตฟอร์มที่เบราว์เซอร์กำลังทำงาน

ถึงกระนั้นคำจำกัดความนี้ยังค่อนข้างคลุมเครือ ทศวรรษที่ผ่านมา 'แพลตฟอร์ม' อาจเป็นสถาปัตยกรรม CPU หรือระบบปฏิบัติการ ในช่วงไม่กี่ปีที่ผ่านมาอุปกรณ์พกพาและอุปกรณ์สื่ออาจเป็นแพลตฟอร์มได้เช่นกัน


การตีความ

เช่นเดียวกับทุกสิ่งบนเว็บชะตากรรมของเราอยู่ในมือของผู้จำหน่ายเบราว์เซอร์ที่ยิ่งใหญ่ ในกรณีนี้เบราว์เซอร์หลัก ๆ ทั้งหมด (IE, Safari, Firefox และ Chrome) ยอมรับว่าเครื่อง Windows 64 บิตของฉันเป็นแพลตฟอร์ม "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 Linux armv7lและผลตอบแทน ในบางกรณีอุปกรณ์ Android สามารถส่งคืนnull(แทนundefined) ได้

  • Android (พ.ศ. 2551)
  • Linux: ดูหมายเหตุด้านบน
  • null

แอปเปิ้ล

เท่าที่ iOS ดำเนินไป: Safari, Chrome และ Mercury เห็นด้วย แต่ Opera ทำให้สิ่งต่างๆยุ่งเหยิง

  • iPhone (พ.ศ. 2550)
  • iPod (พ.ศ. 2550)
  • iPad (พ.ศ. 2553)
  • 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

  • BlackBerry (พ.ศ. 2546)

FreeBSD

  • FreeBSD
  • FreeBSD i386: โปรเซสเซอร์ x86 (IA-32)
  • FreeBSD amd64: โปรเซสเซอร์ AMD x86-64

ลินุกซ์

ไม่น่าเชื่อถืออย่างจริงจังเนื่องจากมีหลายแพลตฟอร์มที่สร้างขึ้นจากสิ่งนี้ ตัวอย่างเช่น Chrome บน ChromeOS หรือ Linux x86-64 ทั้งคู่จะคืนค่าLinux i686ตามที่รวบรวมไว้

หมายเหตุ Linux ARM แสดงแฟล็กสถาปัตยกรรมเช่นarmv5tejจะแสดงถึงสถาปัตยกรรม v5 ARM ที่รองรับ 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 Window System
  • Linux MSM8960_v3.2.1.1_N_R069_Rev:18: Sony Xperia V
  • Linux ppc64
  • Linux x86_64
  • Linux x86_64 X11: ขึ้นอยู่กับ X11 Window System

Microsoft

แม้แต่ Windows 8 แบบ 64 บิตก็ยังยึดติดWin32อยู่

  • OS/2 (พ.ศ. 2537 †)
  • Pocket PC
  • Windows
  • Win16: Windows 3.1x (1992 †)
  • Win32: Windows 95 ขึ้นไป
  • WinCE

Mozilla (ระบบปฏิบัติการ Firefox)

สตริงว่างจะถูกส่งคืนในเว็บเบราว์เซอร์บน Firefox OS ดูรายงานข้อบกพร่องนี้

KaiOS

เว็บเบราว์เซอร์บน KaiOS (ที่ใช้ Firefox) จะส่งคืนสตริงว่าง (เช่นเดียวกับ Firefox OS) ดูรายงานข้อบกพร่องนี้

นินเทนโด

  • New Nintendo 3DS (2557)
  • Nintendo DSi (พ.ศ. 2551)
  • Nintendo 3DS (2554)
  • Nintendo Wii (พ.ศ. 2549)
  • Nintendo WiiU (2555)

OpenBSD

  • OpenBSD amd64

Symbian / S40

  • Nokia_Series_40 (2542 †)
  • S60 (พ.ศ. 2545 †)
  • Symbian: Opera บน Symbian
  • Symbian OS

ปาล์ม

  • PalmOS (พ.ศ. 2539)
  • webOS (2552)

โซลาริส

  • SunOS
  • SunOS i86pc
  • SunOS sun4u: โปรเซสเซอร์ SPARC

โซนี่

  • PLAYSTATION 3 (พ.ศ. 2549)
  • PlayStation 4 (2556)
  • PSP: PlayStation Portable (2004)

ต่างๆ

  • HP-UX: Hewlett-Packard UniX
  • masking-agent: ค่านี้จะเปลี่ยนไปเมื่อใช้ Masking Agent สำหรับ Firefox
  • WebTV OS
  • X11: ระบบหน้าต่าง X11

มีอุปกรณ์ที่ไม่อยู่ในรายการนี้หรือไม่? โปรดแสดงความคิดเห็นโดยระบุคุณสมบัติของอุปกรณ์และnavigator.platformมูลค่าของอุปกรณ์ของคุณ( อย่าลังเลที่จะใช้JSFiddle นี้เพื่อค้นหาค่า)

หวังว่านี่จะช่วยได้


โทมัสดีใจที่ได้รับความช่วยเหลือ
เบิร์ต

FYI มีเบราว์เซอร์ 64 บิตบางตัวแม้กระทั่ง IE หากคุณสามารถขุดได้ ดังนั้นบางครั้ง Win64 อาจปรากฏขึ้น โปรแกรม sniffer ของเบราว์เซอร์ของฉันถูกตั้งค่าให้มองเห็นและตั้งค่าสถานะเบราว์เซอร์ว่าดำเนินการแบบ 64 บิต รายการที่ครอบคลุมมาก ๆ .. ขอบคุณ. :)
Bezelith

มีอีกสองสามรายการในรายการนี้: books.google.com/…
hexalys

@ Bezelith: ขอบคุณ! ฉันยังเคยเห็นคนพยายามตรวจจับระบบ 64 บิตด้วยไฟล์navigator.cpuClassและnavigator.appVersionแต่ก็ดูเหมือนจะไม่น่าเชื่อถือ @hexalys: ขอบคุณเช่นกันฉันได้เพิ่มสตริงเหล่านั้นในรายการแล้ว
Robbert

1
ตอนนี้ยังตรวจสอบไม่ได้ แต่จะไม่มีสำหรับ Xbox 360, Xbox One, PS4 ด้วยหรือไม่?
John Odom

21

ฉันสามารถเพิ่มลงในรายการนี้ด้วยค่าที่ชัดเจนสำหรับอุปกรณ์เฉพาะที่ฉันทดสอบ

ที่ไหนสตริงคือLinux armv7lมันจะสิ้นสุดลงในตัวพิมพ์เล็กL(สำหรับ "ลินุกซ์สันนิษฐาน?) แทนที่จะเป็นจำนวนหรือตัวพิมพ์เล็ก1I

สำหรับอุปกรณ์ iOS ทำการทดสอบใน Safari สำหรับอุปกรณ์ Android การทดสอบจะดำเนินการในเบราว์เซอร์หุ้นหรือ Chrome หากไม่มีการติดตั้งเบราว์เซอร์สต็อก

สำหรับอุปกรณ์แท็บเล็ต Windows Nokia Lumia ใช้ Windows RT 8.1 กับ IE 11.0.9600.16476 และ MS Surface ใช้ Windows 8.1 Pro พร้อม IE 11.0.9600.16438

สำหรับอุปกรณ์ Windows Phone นั้น Nokia Lumia ใช้ Windows Phone 8.1 และ IE 11

โทรศัพท์

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

แท็บเล็ต

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

นอกจากนี้ที่ดีในการพยายามทำรายการครั้งแรกของฉันทำได้ดีมาก! แม้แต่ iOS ก็ยังสามารถส่งคืนตัวระบุที่แตกต่างกันในเบราว์เซอร์อื่นโดยเฉพาะ Opera Mini เราต้องการเว็บไซต์ที่ทดสอบชุดอุปกรณ์ / ระบบปฏิบัติการ / เบราว์เซอร์หรือบางสิ่งบางอย่าง ...
Robbert

1
สถาปัตยกรรม ARM ใช้คำต่อท้ายตัวพิมพ์เล็กเพื่อแสดงถึงคุณสมบัติของตัวแปร เท่าที่ฉันรู้lย่อมาจาก little-endian (การจัดเก็บ LSB ในที่อยู่ที่เล็กที่สุดหากเหมาะสม) มีหลายวิธีที่จะติดตามได้
Robbert

9

ฉันไม่สามารถแสดงความคิดเห็นได้ดังนั้นฉันจึงปล่อยสิ่งเหล่านี้ไว้ซึ่งฉันคิดว่าไม่ได้กล่าวถึงข้างต้น:

+-----+--------------+--------------------------------------+
| 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" คือส่วนขยายความเป็นส่วนตัวของเบราว์เซอร์ที่เปลี่ยนแพลตฟอร์มเป็นค่าเริ่มต้น

อันที่ยาวแปลกคือ Sony Z10


ขอบคุณมากสำหรับข้อมูลเพิ่มเติมเหล่านี้ ฉันได้เพิ่มลงในรายการแล้ว Sony Z10ตอนนี้ครองมงกุฎสำหรับnavigator.platformมูลค่าที่ยาวนานที่สุด
Robbert

@justin คุณบังเอิญรู้หรือไม่ว่าส่วนขยายความเป็นส่วนตัวของเบราว์เซอร์ใดเปลี่ยนค่าเป็น "masking-agent"? แก้ไข: ไม่เป็นไรฉันเห็นaddons.mozilla.org/en-US/firefox/addon/masking-agentแต่ฉันคิดว่าฉันยังคงสงสัยเกี่ยวกับ Chrome หรือเบราว์เซอร์อื่น ๆ หากมีใครรู้
user4851

@ user4851 addons.mozilla.org/en-US/firefox/addon/masking-agentไม่มีให้บริการแล้ว
Christophe Roussy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.