关于javascript:判断设备类型

3次阅读

共计 1295 个字符,预计需要花费 4 分钟才能阅读完成。

判断是否是微信

// 判断是否是微信浏览器的函数,在微信登陆的中央须要
function isWeiXin() {
    //window.navigator.userAgent 属性蕴含了浏览器类型、版本、操作系统类型、浏览器引擎类型等信息,这个属性能够用来判断浏览器类型
    var ua = window.navigator.userAgent.toLowerCase();
    // 通过正则表达式匹配 ua 中是否含有 MicroMessenger 字符串
    if (ua.match(/MicroMessenger/i) == 'micromessenger') {return true;} else {return false;}
}

判断是否是 ios

function isIOS() {
    var u = navigator.userAgent;
    var isiOS = !!u.match(/\(i[^;]+;(U;)? CPU.+Mac OS X/);     //ios 终端
    return isiOS;
}

判断是否是 pc 端

/* 检测设施,ISPC true  pc;false wx*/
function IsPC() {
    var userAgentInfo = navigator.userAgent;
    var Agents = ["Android", "iPhone",
        "SymbianOS", "Windows Phone",
        "iPad", "iPod"
    ];
    var flag = true;
    for (var v = 0; v < Agents.length; v++) {if (userAgentInfo.indexOf(Agents[v]) > 0) {
            flag = false;
            break;
        }
    }
    return flag;
}

var ISPC = IsPC();

我的项目里要求是否是 pc/wx
微信分电脑微信和手机微信 (android/ios)
手机端上进行横竖屏解决

if(ISPC){}else if(isWeiXin()){if(window.navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)) {   
           // 手机端
           if(isIOS()){
           //ios
            if (document.body.offsetWidth > document.body.offsetHeight) {// 横屏} else if (document.body.offsetWidth < document.body.offsetHeight) {// 竖屏}
           }else{
           //android
           if (screen && screen.orientation) {
                // 手机微信 andriod
                if (screen.orientation.type === 'landscape-primary') {// 横屏} else if (screen.orientation.type === 'portrait-primary') {// 竖屏}
           }
         }else{// 电脑端}
}
正文完
 0