JavaScript でUserAgent を用いた端末判別
JavaScript でUserAgent を用いた端末判別
UserAgentを使ったモバイル、タブレット、PC を判別するものです。
なお、MDNでは、UserAgent は読み書きできるので、UserAgent による端末識別は推奨されてないようです。
サンプル
PCでアクセスすれば「PC」と、タブレットでアクセスすれば「Tablet」と、 モバイルでアクセスすれば「Mobile」と表示され、iPhone かAndroid であるかも判別します。
コード
コード解説
重要な部分は以下です。
var _ua = (function(u){
var mobile = {
0: (u.indexOf("windows") != -1 && u.indexOf("phone") != -1)
|| u.indexOf("iphone") != -1
|| u.indexOf("ipod") != -1
|| (u.indexOf("android") != -1 && u.indexOf("mobile") != -1)
|| (u.indexOf("firefox") != -1 && u.indexOf("mobile") != -1)
|| u.indexOf("blackberry") != -1,
iPhone: (u.indexOf("iphone") != -1),
Android: (u.indexOf("android") != -1 && u.indexOf("mobile") != -1)
};
var tablet = (u.indexOf("windows") != -1 && u.indexOf("touch") != -1)
|| u.indexOf("ipad") != -1
|| (u.indexOf("android") != -1 && u.indexOf("mobile") == -1)
|| (u.indexOf("firefox") != -1 && u.indexOf("tablet") != -1)
|| u.indexOf("kindle") != -1
|| u.indexOf("silk") != -1
|| u.indexOf("playbook") != -1;
var pc = !mobile[0] && !tablet;
return {
Mobile: mobile,
Tablet: tablet,
PC: pc
};
})(window.navigator.userAgent.toLowerCase());
こちらを参照しました。
_ua.PC === true
であればPC, _ua.Tablet ===true
であればタブレット、 _ua.Mobile[0] === true
でモバイル端末と判定できます。
さらに、Mobile は、_ua.Mobile.iPhone === true
でiPhone, _ua.Mobile.Android === true
でAndroid端末を判別できます。