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
Detect iOS version less than 5 with JavaScript
Android2.3と、iOS4以下はPosition:fixに対応していないですし、iOS5からPosition:fixに対応していてもバグが多いので、数値で指定したバージョンより高いか低いかを取得するときに便利そうです。