iPhone/iPadとiOSのバージョン判別

開いているデバイスかiPhoneかiPadか、そのうえでiOSのバージョンを判別するスクリプトです。

JavaScript

var ua = navigator.userAgent;
if(/iPhone/.test(ua)) {
    ua.match(/iPhone OS (\w+){1,3}/g);
    var osv=(RegExp.$1.replace(/_/g, '')+'00').slice(0,3);
    if(osv >= 700) {
        alert("iPhoneのiOS7以上");
    } else {
        alert("iPhoneのiOS7未満");
    }
} else if(/iPad/.test(ua)) {
    ua.match(/CPU OS (\w+){1,3}/g);
    var osv=(RegExp.$1.replace(/_/g, '')+'00').slice(0,3);
    if(osv >= 700) {
        alert("iPadのiOS7以上");
    } else {
        alert("iPadのiOS7未満");
    }
}

UAを取得後、文字列内よりiPhoneかiPadかで分岐したあと、バージョン数を3桁の数値でosvに格納して判別しています。

iOS5から6の時は地図の変化っぷりからiOS5のまま残すという人も結構いたのと、iOS5と6のSafariで微妙にバグの差があったのでバージョン判別がたまに必要でしたが、iOS6以降はバージョンごとのブラウザバグもあまり見られなくなったので今や過去の遺産かも…

参考:http://blog.lunatic-code.net/webdesign/javascript/658/