JavaScript を使用して MacOS X、iOS、Windows、Android、Linux オペレーティング システムを検出するにはどうすればよいでしょうか?
ベストアンサー1
window.navigator
オブジェクトとそのプロパティ、について多くのことを学びましたplatform
。私の考えでappVersion
はuserAgent
、ユーザーの OS を 100% 確実に検出することはほぼ不可能ですが、私の場合は 85% ~ 90% で十分でした。
そこで、Stack Overflow の大量の回答といくつかの記事を調べた結果、次のような内容を書きました。
function getOS() {
const userAgent = window.navigator.userAgent,
platform = window.navigator?.userAgentData?.platform || window.navigator.platform,
macosPlatforms = ['macOS', 'Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'],
windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'],
iosPlatforms = ['iPhone', 'iPad', 'iPod'];
let 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 (/Linux/.test(platform)) {
os = 'Linux';
}
return os;
}
alert(getOS());
インスピレーション:
- 現在、navigator.platform に指定できる値のリストは何ですか?
- JavaScript または jQuery を使用して Mac OS X または Windows コンピュータを検出する最良の方法
- JavaScript を使用してブラウザのバージョンとオペレーティング システムを検出するにはどうすればよいでしょうか?
- JavaScript を使用してブラウザとオペレーティング システムの名前とバージョンを検出する方法
また、モバイル ブラウザーとデスクトップ ブラウザーのリストを使用してコードをテストしました。
このコードは正常に動作します。MacOS、iOS、Android、Windows、UNIX のすべての OS でテストしましたが、100% 確実であるとは言えません。