Danh sách các giá trị có thể có cho Navigator.platform tính đến ngày hôm nay là gì? [đóng cửa]


93

Tôi biết rằng điều này thay đổi khá thường xuyên, nhưng có danh sách đầy đủ nhất có thể về các giá trị có thể được trả về navigator.platformkhông?

Danh sách cho đến nay:

  • HP-UX
  • Linux i686
  • Linux armv7l
  • Mac68K
  • MacPPC
  • MacIntel
  • SunOS
  • Thắng16
  • Win32
  • Nhăn
  • điện thoại Iphone
  • iPod
  • iPad
  • Android
  • BlackBerry
  • Opera

1
Bạn đã nhìn vào browscap.ini? Dự án đã được khởi động lại vào đầu năm nay.
Robbert

1
Có, nhưng nó không đưa ra một danh sách cập nhật nào cả. Ví dụ iPad không có trong đó
thomasstephn

Câu trả lời:


163

Tuyên bố từ chối trách nhiệm: xin lưu ý rằng thuộc tính này được gửi bởi trình duyệt và do đó có thể bị làm giả, giống như chuỗi tác nhân người dùng. Đừng bao giờ dựa vào navigatorđối tượng là hoàn toàn chính xác.

Định nghĩa

Theo như tôi biết thì không có một danh sách công khai nào về tất cả các giá trị `Navigator.platform` có thể có, mặc dù thuộc tính này đã tồn tại được một thời gian. Để làm cho mọi thứ tồi tệ hơn, định nghĩa của tài sản đã thay đổi trong suốt nhiều năm. Nó từng là:

navigator.platform cho biết loại máy mà trình duyệt được biên dịch.

Về cơ bản, điều này có nghĩa là thuộc tính có thể trả về Win16khi người dùng đang chạy trình duyệt được biên dịch cho 16 bit, ngay cả khi người dùng đang sử dụng máy Windows 32 bit hoặc 64 bit.

Tất nhiên W3Schools liệt kê định nghĩa cũ (tôi thậm chí không liên kết với chúng). Mặc dù vậy, W3MDN đã đồng ý về một định nghĩa khác:

navigator.platform đại diện cho nền tảng mà trình duyệt đang thực thi.

Tuy nhiên, định nghĩa này hơi mơ hồ. Một thập kỷ trước, một 'nền tảng' sẽ là một kiến ​​trúc CPU hoặc một hệ điều hành. Trong những năm gần đây, thiết bị cầm tay và phương tiện cũng có thể là nền tảng.


Sự giải thích

Như với mọi thứ trên web, số phận của chúng ta nằm trong tay các nhà cung cấp trình duyệt hùng mạnh. Trong trường hợp này, tất cả các trình duyệt chính (IE, Safari, Firefox và Chrome) đều đồng ý rằng máy Windows 64-bit của tôi là nền tảng `` Win32` '. Điều này có nghĩa là chúng vẫn đang bám sát định nghĩa cũ cho đến thời điểm hiện tại của Windows, vì không có cái nào trong số chúng được biên dịch cho 64-bit cho đến nay. Mặc dù vậy, hãy nhìn vào khía cạnh tươi sáng: ít nhất tất cả đều đồng ý về một điều gì đó cùng một lúc.

Có vẻ như chúng ta may mắn hơn một chút khi nói đến các thiết bị cầm tay và phương tiện. Như bạn đã nêu trong câu hỏi của mình, iPhone, iPod và iPad đều có một giá trị riêng, mặc dù chúng đều chạy cùng một hệ điều hành. Tất cả các thiết bị của Nintendo và Sony cũng đang trả lại những giá trị độc đáo. Vì vậy, chỉ bây giờ navigator.platformlà bắt đầu trông thú vị.

Nhưng sau đó Opera Mini cho iPhone xuất hiện, mọi thứ lại rối tung lên. Opera Mini thực sự trả về số phiên bản công cụ mã, đây là cách giải thích hoàn toàn khác platformso với bất kỳ thứ gì chúng ta đã gặp cho đến nay. Vì vậy, bây giờ chúng ta quay lại nơi chúng ta bắt đầu và chúng ta bắt đầu hiểu tại sao có quá ít thông tin về chủ đề này.

Mặc dù các cách giải thích khác nhau và tôi không có câu trả lời đầy đủ cho bạn, nhưng tôi cảm thấy mình nên thêm 2 xu của mình cho bất kỳ ai khác ngoài đó nghiên cứu navigator.platformtài sản.


Danh sách

Dưới đây là danh sách (chắc chắn không xác định) các giá trị mà tôi biết mà tôi có thể xác minh bằng nhiều nguồn. Do định nghĩa mơ hồ, tôi không chắc cách tốt nhất để đặt hàng những thứ này là gì. Hiện tại, tôi đã chia chúng thành một số danh mục dựa trên hệ điều hành hoặc thương hiệu thiết bị và liệt kê thông tin bổ sung và ngày phát hành nếu có.

Android

Thực sự rất khó để kiểm tra các thiết bị Android. Các thiết bị Android sẽ trở lại Androidthường xuyên như một số phiên bản của Linux. Ví dụ: trên điện thoại Nexus 5, cả trình duyệt Android và Chrome đều quay trở lại Linux armv7l. Trong một số trường hợp hiếm hoi, thiết bị Android thậm chí có thể quay trở lại null(thay vì undefined).

  • Android (2008)
  • Linux: xem ghi chú ở trên
  • null

táo

Đối với iOS: Safari, Chrome và Mercury đồng ý, nhưng Opera làm mọi thứ rối tung lên.

  • iPhone (2007)
  • iPod (2007)
  • iPad (2010)
  • iPhone Simulator: trình mô phỏng được vận chuyển với Xcode
  • iPod Simulator: trình mô phỏng được vận chuyển với Xcode
  • iPad Simulator: trình mô phỏng được vận chuyển với Xcode
  • Macintosh
  • MacIntel: Bộ xử lý Intel (2005)
  • MacPPC: Bộ xử lý PowerPC
  • Mac68K: Bộ xử lý 68000
  • Pike v7.6 release 92: Opera Mini 5 trên mọi iPhone (2009)
  • Pike v7.8 release 517: Opera Mini 7 trên mọi iPhone (2012)

BlackBerry

  • BlackBerry (2003)

FreeBSD

  • FreeBSD
  • FreeBSD i386: bộ xử lý x86 (IA-32)
  • FreeBSD amd64: Bộ xử lý AMD x86-64

Linux

Nghiêm túc không đáng tin cậy vì có rất nhiều nền tảng được xây dựng dựa trên điều này. Ví dụ: Chrome trên ChromeOS hoặc Linux x86-64 đều trả về Linux i686như đó là những gì chúng được biên dịch.

Lưu ý Linux ARM liệt kê các cờ kiến ​​trúc, ví dụ: armv5tejsẽ biểu thị kiến ​​trúc ARM v5 với hỗ trợ Thumb ('T'), tập lệnh DSP ('E') và hỗ trợ Jazelle ('J').

  • Linux
  • Linux aarch64
  • Linux armv5tejl
  • Linux armv6l
  • Linux armv7l
  • Linux armv8l
  • Linux i686
  • Linux i686 on x86_64
  • Linux i686 X11: dựa trên Hệ thống cửa sổ X11
  • Linux MSM8960_v3.2.1.1_N_R069_Rev:18: Sony Xperia V
  • Linux ppc64
  • Linux x86_64
  • Linux x86_64 X11: dựa trên Hệ thống cửa sổ X11

Microsoft

Ngay cả trên Windows 8 64-bit, tất cả chúng đều dính vào Win32.

  • OS/2 (1994 †)
  • Pocket PC
  • Windows
  • Win16: Windows 3.1x (1992 †)
  • Win32: Windows 95 trở lên
  • WinCE

Mozilla (Firefox OS)

Một chuỗi trống được trả về trong trình duyệt web trên Firefox OS. Xem báo cáo lỗi này .

KaiOS

Trình duyệt web trên KaiOS (dựa trên Firefox) cũng trả về chuỗi trống (giống như Firefox OS). Xem báo cáo lỗi này .

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 trên Symbian
  • Symbian OS

lòng bàn tay

  • PalmOS (1996)
  • webOS (2009)

Solaris

  • SunOS
  • SunOS i86pc
  • SunOS sun4u: Bộ xử lý SPARC

Sony

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

Đa dạng

  • HP-UX: Hewlett-Packard UniX
  • masking-agent: giá trị thay đổi thành này khi sử dụng Masking Agent cho Firefox
  • WebTV OS
  • X11: Hệ thống cửa sổ X11

Có một thiết bị không có trong danh sách này? Vui lòng để lại nhận xét liệt kê các thuộc tính của thiết bị của bạn và navigator.platformgiá trị của nó (vui lòng sử dụng JSFiddle này để tìm giá trị).

Hi vọng điêu nay co ich.


Rất vui được giúp đỡ, Thomas.
Robbert

FYI, một số trình duyệt 64-bit vẫn tồn tại, ngay cả IE, nếu bạn có thể tìm hiểu nó. Do đó, Win64 đôi khi có thể xuất hiện. Trình duyệt trình duyệt của tôi được thiết lập để xem nó và gắn cờ trình duyệt đang thực thi 64-bit. Danh sách rất toàn diện nếu không .. cảm ơn. :)
Bezelith

Có một vài chi tiết trong danh sách này: books.google.com/...
hexalys

@Bezelith: cảm ơn! Tôi cũng đã thấy mọi người cố gắng phát hiện các hệ thống 64-bit với navigator.cpuClassnavigator.appVersion, nhưng dường như không đáng tin cậy cho đến nay. @hexalys: cảm ơn bạn cũng vậy, tôi đã thêm những chuỗi đó vào danh sách.
Robbert,

1
Tôi không thể kiểm tra vào lúc này nhưng sẽ không có một cái cho Xbox 360, Xbox One, PS4 phải không?
John Odom

21

Tôi có thể thêm vào danh sách này các giá trị xác định cho các thiết bị cụ thể mà tôi đã thử nghiệm.

Chuỗi ở đâu Linux armv7l, nó kết thúc bằng chữ thường L(đối với "Linux, có lẽ là?), Thay vì là số 1hoặc chữ thường I.

Đối với các thiết bị iOS, thử nghiệm đã được thực hiện trong Safari. Đối với thiết bị Android, kiểm tra được thực hiện trong trình duyệt gốc hoặc Chrome nếu không có trình duyệt gốc nào được cài đặt.

Trong số các thiết bị máy tính bảng Windows, Nokia Lumia đang chạy Windows RT 8.1 với IE 11.0.9600.16476 và MS Surface đang chạy Windows 8.1 Pro với IE 11.0.9600.16438.

Trong số các thiết bị điện thoại Windows, Nokia Lumia đang chạy Windows Phone 8.1 và IE 11.

Những cái điện thoại

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

Máy tính bảng

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

Bổ sung tuyệt vời cho nỗ lực danh sách ban đầu của tôi, công việc tốt! Ngay cả iOS vẫn có thể trả về một số nhận dạng khác trong một trình duyệt khác - đặc biệt là Opera Mini. Chúng ta cần một trang web mà kiểm tra tất cả các kết hợp của thiết bị / OS / trình duyệt hoặc một cái gì đó ...
Robbert

1
Kiến trúc ARM sử dụng các hậu tố viết thường để biểu thị các tính năng biến thể. Theo như tôi biết llà viết tắt của little-endian (lưu trữ LSB ở địa chỉ nhỏ nhất, nếu điều đó có ý nghĩa). Tuy nhiên, có quá nhiều biến thể để theo dõi.
Robbert

9

Tôi không thể đăng nhận xét, vì vậy tôi để lại những nhận xét mà tôi nghĩ không được đề cập ở trên:

+-----+--------------+--------------------------------------+
| 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" là một tiện ích mở rộng quyền riêng tư của trình duyệt sẽ thay đổi nền tảng theo mặc định.

Chiếc dài kỳ lạ là Sony Z10


Cảm ơn rất nhiều cho những bổ sung này. Tôi đã thêm họ vào danh sách. Sony Z10bây giờ giữ vương miện cho navigator.platformgiá trị lâu nhất .
Robbert

@justin Bạn có tình cờ biết tiện ích mở rộng quyền riêng tư của trình duyệt nào thay đổi giá trị thành "masking-agent" không? chỉnh sửa: bỏ qua, tôi thấy addons.mozilla.org/en-US/firefox/addon/masking-agent , nhưng tôi cho rằng tôi vẫn đang thắc mắc về Chrome hoặc các trình duyệt khác, nếu có ai biết.
user4851

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.