様々な方式でPC端、IOS端、モバイル端末を判断します.

2488 ワード

1.ブラウザのuserAgentを判断し、携帯電話がIOS(アップル)とAndroid(Android)クライアントであるかどうかは正則で判断する.
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android  
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios  

ture    false  
2.PCかモバイルかを判断する
//         
    var userAgentInfo = navigator.userAgent.toLowerCase();
    var Agents = ["android", "iphone",
                "symbianos", "windows phone",
                "ipad", "ipod"];
    var ly=document.referrer;  //                  URL

    for (var v = 0; v < Agents.length; v++) {
        if (userAgentInfo.indexOf(Agents[v]) >= 0&&(ly==""||ly==null)) {
            this.location.href='http://m.***.com';  //wap   
        }
    }
3.判断 モバイル端末、ipad、iphone、微信、QQなど
//      
var browser={
    versions:function(){
        var u = navigator.userAgent, 
            app = navigator.appVersion;
        return {
            trident: u.indexOf('Trident') > -1, //IE  
            presto: u.indexOf('Presto') > -1, //opera  
            webKit: u.indexOf('AppleWebKit') > -1, //  、    
            gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,//    
            mobile: !!u.match(/AppleWebKit.*Mobile.*/), //       
            ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios  
            android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android  
            iPhone: u.indexOf('iPhone') > -1 , //   iPhone  QQHD   
            iPad: u.indexOf('iPad') > -1, //  iPad
            webApp: u.indexOf('Safari') == -1, //  web    ,       
            weixin: u.indexOf('MicroMessenger') > -1, //     (2015-01-22  )
            qq: u.match(/\sQQ/i) == " qq" //  QQ
        };
    }(),
    language:(navigator.browserLanguage || navigator.language).toLowerCase()
}


    :

//    IE  
if(browser.versions.trident){ alert("is IE"); }
//    webKit  
if(browser.versions.webKit){ alert("is webKit"); }
//       
if(browser.versions.mobile||browser.versions.android||browser.versions.ios){ alert("   "); }

currentLang = navigator.language;   //   IE          
if(!currentLang){//  IE       
    currentLang = navigator.browserLanguage;
}
alert(currentLang);