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ề Win16
khi 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, W3 và MDN đã đồ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.platform
là 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 platform
so 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.platform
tà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 Android
thườ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
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 i686
như đó 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ụ: armv5tej
sẽ 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
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.platform
giá 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.
browscap.ini
? Dự án đã được khởi động lại vào đầu năm nay.