イナヅマTVログ

[JavaScript] iOSのVersionを知りたい

| 0件のコメント

JavaScriptを使用してiOS端末のVerion判定が必要になりました。

stackoverflowで探すと直ぐに見つかりました。
スゴいなー、ありがたいなー。

Detect iOS version less than 5 with JavaScript

お知恵を拝借しこんな風にしてみました。

function iosVersion () {
    var v, versions;
    if ( /iP(hone|od|ad)/.test( navigator.platform ) ) {
        // supports iOS 2.0 and later: <http://bit.ly/TJjs1V>
        v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
        versions = [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
        return versions[ 0 ];
    }
 
    return versions;
}

そのまんまやけど、
今回はメジャーバージョンだけ分かれば良かったので先頭数値だけを返すことにしました。
iOSはVersion No.が返ってきます。
その他のOSの場合はundefinedになります。

使う時はundefinedのチェックを先に行います。

var version = iosVersion();
if ( typeof version !== "undefined" && version > 4 ) {
    // iOS でかつ Version 5 以上
}

iOSチェックの正規表現、こんな風にもできるんやね、覚えた!

/iP(hone|od|ad)/.test( navigator.platform )

コード内コメントURLはAppleの iOS Developer Library へのリンクです。
Using the Safari User Agent String

iOS 2.0 User agent はこんな風になってるらしい

Mozilla/5.0 (iPhone; U; CPU iOS 2_0 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/XXXXX Safari/525.20
(iPhone; U; CPU iOS 2_0 like Mac OS X; en-us)
The platform string. iPhone is replaced with iPod when running on an iPod touch and iPad when running on an iPad.
AppleWebKit/525.18.1
The WebKit engine build number.
Version/3.1.1
The Safari family version.
Mobile/XXXXX
The mobile version number, where XXXX is the build number.
Safari/525.20
The Safari build number.

コメントを残す