JavascriptでAndroid/iOSのバージョンを数値で取得 ITかあさん

ITかあさん

JavascriptでAndroid/iOSのバージョンを数値で取得

JavascriptでAndroid/iOSのバージョンを数値で取得

CSSのposition:fixに対応しているとかいないとか、Android/iOSで指定バージョン以下なのか以上なのか、バージョンの数値だけを取得したいことって多々あると思います。
(っつーか私の場合多すぎるんだが。。)
なかなか使えるな~と思ったのでメモして残しておきます。

Androidのバージョンを数字の部分だけ取得

先にuserAgentを取得し、Androidという文字列が含まれていれば、文字列の「Android」をスライスして、数字だけにして、Androidのバージョンの数字だけにします。

function AndroidSversion() {
     var ua = navigator.userAgent;
     if( ua.indexOf("Android") > 0 )
     {
         var androidversion =      parseFloat(ua.slice(ua.indexOf("Android")+8));
         return androidversion;
     }
}
参考:Special CSS3 Scaling for andriod version less than 2.3

iOSのバージョンを数字の部分だけ取得

function iOSversion() {
     if (/iP(hone|od|ad)/.test(navigator.platform)) {
          var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
          return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
     }
}
参考:
Detect iOS version less than 5 with JavaScript

Android2.3と、iOS4以下はPosition:fixに対応していないですし、iOS5からPosition:fixに対応していてもバグが多いので、数値で指定したバージョンより高いか低いかを取得するときに便利そうです。

初夏のJavaScript祭 in サーキュレーションビル ForPro