Helpex - Trao đổi & giúp đỡ Đăng nhập
32

Làm thế nào để phát hiện hệ điều hành MacOS X, iOS, Windows, Android và Linux bằng JavaScript?

32 hữu ích 0 bình luận 54k xem chia sẻ
143

Tôi học được rất nhiều về window.navigatorđối tượng và thuộc tính của nó: platform, appVersionuserAgent. Theo suy nghĩ của tôi, hầu như không thể phát hiện hệ điều hành của người dùng chắc chắn 100%, nhưng trong trường hợp của tôi, 85% -90% là đủ đối với tôi.

Vì vậy, sau khi xem xét hàng tấn câu trả lời của stackoverflows và một số bài báo, tôi đã viết một số thứ như sau:

function getOS() {
  var userAgent = window.navigator.userAgent,
      platform = window.navigator.platform,
      macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'],
      windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'],
      iosPlatforms = ['iPhone', 'iPad', 'iPod'],
      os = null;

  if (macosPlatforms.indexOf(platform) !== -1) {
    os = 'Mac OS';
  } else if (iosPlatforms.indexOf(platform) !== -1) {
    os = 'iOS';
  } else if (windowsPlatforms.indexOf(platform) !== -1) {
    os = 'Windows';
  } else if (/Android/.test(userAgent)) {
    os = 'Android';
  } else if (!os && /Linux/.test(platform)) {
    os = 'Linux';
  }

  return os;
}

alert(getOS());
Mở rộng đoạn mã

Cảm hứng:

  1. Danh sách các giá trị có thể có cho Navigator.platform tính đến ngày hôm nay là gì?
  2. Cách tốt nhất để phát hiện máy tính Mac OS X hoặc Windows bằng JavaScript hoặc jQuery
  3. Làm cách nào để phát hiện phiên bản trình duyệt và hệ điều hành của tôi bằng JavaScript?
  4. Cách phát hiện Tên và Phiên bản Trình duyệt và Hệ điều hành bằng javaScript

Ngoài ra, tôi đã sử dụng danh sách các trình duyệt dành cho thiết bị di động và máy tính để bàn để kiểm tra mã của mình:

  1. Danh sách tất cả các trình duyệt trên thiết bị di động
  2. Danh sách tất cả các trình duyệt

Mã này hoạt động đúng. Tôi đã thử nghiệm nó trên tất cả các hệ điều hành: MacOS, iOS, Android, Windows và UNIX, nhưng tôi không thể đảm bảo chắc chắn 100%.

143 hữu ích 5 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ javascript operating-system , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading