js判断手机端(Android手机还是iPhone手机)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js判断手机端(Android手机还是iPhone手机)相关的知识,希望对你有一定的参考价值。

现在使用手机上网的人越来越多,一些下载网站会通过判断不同系统手机来访问不同网页,比如iPhone和android。下面我们就来介绍一下如何用javascript判断iPhone或Android手机访问

网上常用的代码
    
/**
 * [isMobile 判断平台]
 * @param test: 0:iPhone    1:Android
 */
function ismobile(test){
    var u = navigator.userAgent, app = navigator.appVersion;
    if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){
        if(window.location.href.indexOf("?mobile")<0){
            try{
                if(/iPhone|mac|iPod|iPad/i.test(navigator.userAgent)){
                    return ‘0‘;
                }else{
                    return ‘1‘;
                }
            }catch(e){}
        }
    }else if( u.indexOf(‘iPad‘) > -1){
        return ‘0‘;
    }else{
        return ‘1‘;
    }
};

使用方法:

var pla=ismobile(1);

如果pla返回的是0:iPhone 1:Android

代码一、
<script type="text/javascript">
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/i) || !!u.match(/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/), //是否为移动终端
            ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
            android: u.indexOf(‘Android‘) > -1 || u.indexOf(‘Linux‘) > -1, //android终端或者uc浏览器
            iPhone: u.indexOf(‘iPhone‘) > -1 || u.indexOf(‘Mac‘) > -1, //是否为iPhone或者QQHD浏览器
            iPad: u.indexOf(‘iPad‘) > -1, //是否iPad
            webApp: u.indexOf(‘Safari‘) == -1 //是否web应该程序,没有头部与底部
        };
    } (),
    language: (navigator.browserLanguage || navigator.language).toLowerCase()
}
if (browser.versions.iPhone || browser.versions.iPad || browser.versions.ios) {
    window.location.href = "http://www.jb51.net";
}
if (browser.versions.android) {
    window.location.href = "http://www.qq.com";
}
</script>

如何判断是否是 iPad 浏览器呢,关键是看它的 User Agent 中是否有 iPad。iPad 使用的是 Safari Mobile 浏览器,他的的 User Agent 是:

Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10

Javascript代码
function is_iPad(){
    var ua = navigator.userAgent.toLowerCase();
    if(ua.match(/iPad/i)=="ipad") {
        return true;
    } else {
        return false;
    }
}
因此,判断ipad,iphone,android的代码为:
<script type="text/javascript">
var bForcepc = fGetQuery("dv") == "pc";
function fBrowserRedirect(){
    var sUserAgent = navigator.userAgent.toLowerCase();
    var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
    var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
    var bIsMidp = sUserAgent.match(/midp/i) == "midp";
    var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
    var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
    var bIsAndroid = sUserAgent.match(/android/i) == "android";
    var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
    var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
    if(bIsIpad){
        var sUrl = location.href;
        if(!bForcepc){
            window.location.href = "http://m.jb51.net/?ipad";
        }
    }
    if(bIsIphoneOs || bIsAndroid){
        var sUrl = location.href;
        if(!bForcepc){
            window.location.href = "http://m.jb51.net/?iphone";
        }
    }
    if(bIsMidp||bIsUc7||bIsUc||bIsCE||bIsWM){
        var sUrl = location.href;
        if(!bForcepc){
            window.location.href = "http://m.jb51.net/";
        }
    }
}
function fGetQuery(name){//获取参数值
    var sUrl = window.location.search.substr(1);
    var r = sUrl.match(new RegExp("(^|&)" + name + "=([^&]*)(&|$)"));
    return (r == null ? null : unescape(r[2]));
}
function fShowVerBlock(){
    if(bForcepc){
        document.getElementById("dv_block").style.display = "block";
    }
    else{
        document.getElementById("ad_block").style.display = "block";
    }
}
fBrowserRedirect();
</script>

以上是关于js判断手机端(Android手机还是iPhone手机)的主要内容,如果未能解决你的问题,请参考以下文章

js判断PC端还是手机端

JS判断手机端还是pc端

js判断是手机还是PC端

JS判断手机访问还是电脑端访问

js判断客户端是pc端还是移动端

简单的利用JS来判断页面是在手机端还是在PC端打开的方法