当前位置: 首页 > news >正文

判断客户端类型,Android,iOS,PC

在移动端开发的时候,有的时候我们需要判断客户端是什么类型的,安卓or苹果?

苹果在状态栏目和安卓不太一样。

//判断是否是移动或是web
 var browser={  
    versions:function(){   
       var u = navigator.userAgent;
       //var 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('Linux') > -1, //android终端或者uc浏览器  
            iPhone: u.indexOf('iPhone') > -1 , //是否为iPhone或者QQHD浏览器  
            iPad: u.indexOf('iPad') > -1, //是否iPad    
            webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部  
        };  
     }(),  
    language:(navigator.browserLanguage || navigator.language).toLowerCase()  
}   
  
if(browser.versions.mobile || browser.versions.ios || browser.versions.android ||   
  browser.versions.iPhone || browser.versions.iPad){
      console.log("mobile application")
      window.location = "#";      
}else{
    console.log("web application");
}

我们平时在用的时候可能不需要这么多,就判断一个ios or android 就行了

if(browser.versions.ios){
     console.log("ios");
    _ios.iosHeight();
}
else if(browser.versions.android){
        console.log("andriod");
        _android.addHeight();
    }else{
    console.log("不是移动设备");
}

在不同的客户端执行不同的需求。我们现在做的项目就需要在iOS上加上20的高度

var fullHeight= function(e,b){
    var getH= e,
        selector= $(b),
        $win= $(window),
        fullH,
        containerH;
    // calculate height
    fullH= $win.height();
    containerH= parseInt(fullH-getH);
    //append to selector
    selector.css({
        overflow: 'auto',
        height: containerH+'px'
    });
}

var _ios={
    iosHeight:function(){
        fullHeight(64,'#i');
    }
    
}

这样基本上都可以解决移动端的客户端的判断了

相关文章:

  • 2015年最新数据库流行排行榜
  • android 调用jni 的简单步骤
  • 做图表统计你需要掌握SQL Server 行转列和列转行
  • Centos7安装Xmind
  • svn的终端使用
  • [KMP求最小循环节][HDU1358][Period]
  • Ajax与json在前后端中的细节解惑
  • SQL Server相关书籍
  • 华为第七届无线编码大赛总结(转)
  • deepinmind(转)
  • NSAttributedString
  • aes加密iOS 实现
  • iOS视频录制,裁剪(输出指定大小)
  • KMP,深入讲解next数组的求解(转载)
  • 初步swift语言学习笔记9(OC与Swift杂)
  • Android 架构优化~MVP 架构改造
  • HTTP那些事
  • HTTP中GET与POST的区别 99%的错误认识
  • Vue.js-Day01
  • yii2权限控制rbac之rule详细讲解
  • 编写高质量JavaScript代码之并发
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (理论篇)httpmoudle和httphandler一览
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (强烈推荐)移动端音视频从零到上手(上)
  • (算法)前K大的和
  • (算法二)滑动窗口
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (转载)利用webkit抓取动态网页和链接
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core 项目指定SDK版本
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .net mvc 获取url中controller和action
  • @EnableConfigurationProperties注解使用
  • @PreAuthorize注解
  • []sim300 GPRS数据收发程序
  • [BZOJ 3282] Tree 【LCT】
  • [BZOJ3223]文艺平衡树
  • [C#]手把手教你打造Socket的TCP通讯连接(一)
  • [C/C++]数据结构 深入挖掘环形链表问题
  • [Contiki系列论文之2]WSN的自适应通信架构
  • [c语言]小课堂 day2
  • [DAU-FI Net开源 | Dual Attention UNet+特征融合+Sobel和Canny等算子解决语义分割痛点]
  • [dfs] 图案计数
  • [dfs搜索寻找矩阵中最长递减序列]魔法森林的秘密路径
  • [flume$2]记录一个写自定义Flume拦截器遇到的错误
  • [hdu 1247]Hat’s Words [Trie 图]