1. ホーム
  2. ジャバスクリプト

[解決済み】iOS/Androidオペレーティングシステムの検出について

2022-04-04 06:55:17

質問

私はいくつかの研究を行い、この質問が出たが、私が意図する方法ではない。 私はクライアントのために、アプリケーションをダウンロードする場所であるQRコードランディングのページを構築しています。 そのため、1ページに2つのQRコードを印刷する必要がなく、現在のオペレーティングシステム(Apple/Android/Other[not supported])を検出し、その値に基づいて要素を変更したいと思います。

スクリプト "detectmobilebrowsers" を見ましたが、これはユーザーがモバイルかどうかを判断するためのもので、ユーザーが使用しているOSを把握して最適なアプリケーションのバージョンを提案したいと思います。

この質問に類似した他の回答は、古いか信頼できない(Androidタブレットのブラウザを検知していない)ようなので、何か新しいものを探しています。 どうすれば実現できますか?(できれば、jQuery - Javascript - PHPの順で使用してください)。

どのように解決するのですか?

ユーザーエージェントの文字列をテストすることができます。

/**
 * Determine the mobile operating system.
 * This function returns one of 'iOS', 'Android', 'Windows Phone', or 'unknown'.
 *
 * @returns {String}
 */
function getMobileOperatingSystem() {
    var userAgent = navigator.userAgent || navigator.vendor || window.opera;

    // Windows Phone must come first because its UA also contains "Android"
    if (/windows phone/i.test(userAgent)) {
        return "Windows Phone";
    }

    if (/android/i.test(userAgent)) {
        return "Android";
    }

    // iOS detection from: http://stackoverflow.com/a/9039885/177710
    if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
        return "iOS";
    }

    return "unknown";
}