热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

判断移动端浏览器是安卓还是苹果

2019独角兽企业重金招聘Python工程师标准(function(factory){if(typeofdefinefunction&&define.amd){AMDdefi

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

(function (factory) {if (typeof define === 'function' && define.amd) {// AMDdefine(['jquery'], factory);} else if (typeof exports === 'object') {// CommonJSfactory(require('jquery'));} else {// Browser globalsfactory(jQuery);}
}(function ($) {var device = {};var ua = navigator.userAgent;var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/);var ipad = ua.match(/(iPad).*OS\s([\d_]+)/);var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/);var iphone = !ipad && ua.match(/(iPhone\sOS)\s([\d_]+)/);device.ios = device.android = device.iphone = device.ipad = device.androidChrome = false;if(android) {device.os = 'android';device.osVersion = android[2];device.android = true;device.androidChrome = ua.toLocaleLowerCase().indexOf('chrome') >= 0;}if(ipad || iphone || ipod) {device.os = 'ios';device.ios = true;}if(ipad && !ipod) {device.osVersion = iphone[2].replace()}// iOSif (iphone && !ipod) {device.osVersion = iphone[2].replace(/_/g, '.');device.iphone = true;}if (ipad) {device.osVersion = ipad[2].replace(/_/g, '.');device.ipad = true;}if (ipod) {device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;device.iphone = true;}// iOS 8+ changed UAif (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {if (device.osVersion.split('.')[0] === '10') {device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];}}// Webviewdevice.webView = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i);$.extend({device: device})
}));

 


转:https://my.oschina.net/shuinian/blog/684659



推荐阅读
  • 作者|相学长原文|https:github.comwuomzfxblogblobmasterthis.md日常开发中,我们经常用到this。例如用Jquery绑定事件 ... [详细]
  • 媒介这里大部份是本身碰到过的状况,另有一部份自创了偕行的文章,假如人人有碰到别的坑,迎接提出来一同研讨。学问要点1.Meta标签1.制止用户缩放页面,页面强迫让文档的宽度与装备的宽 ... [详细]
  • Givens1,s2,s3,findwhethers3isformedbytheinterleavingofs1ands2.Forexample,Given:s1aabcc ... [详细]
  • 内存暴增排查分析
    一次偶然间,发现测试环境iis站点内存突然间暴增,平常都是300M,这次一下子暴增到8g于是就开始了接下来的分析发现Dictionary居然有1.78g懵逼windbg分析1.看看 ... [详细]
  • Spark 贝叶斯分类算法
    一、贝叶斯定理数学基础我们都知道条件概率的数学公式形式为即B发生的条件下A发生的概率等于A和B同时发生的概率除以B发生的概率。根据此公式变换,得到贝叶斯公式:即贝叶斯定律是关于随机 ... [详细]
  • ARToolKitunity
    ARToolKit为开源的AR库,相对于高通和easyAr有几点特点:1)开源2)识别项目可以动态添加(详细在后)3)识别文件可以本地生成4)目前只能识别图片(目前为.jpg格式) ... [详细]
  • 利用ipv6技术,废旧笔记本变成server
    如果你家的路由器已经get到了ipv6地址,并且你家的电脑也获取了有效的ipv6地址,在广域网的设备可以访问到。那恭喜你,再配合我这个dd ... [详细]
  • ———Java培训、Android培训、iOS培训、.Net培训、期待与您交流!———一、引用计数器每个OC对象都有自己的引用计数器,表示“对象被引用 ... [详细]
  • 2019 年 Firebase 峰会上发布的新功能
    作者FrancisMa,HeadofProductFirebase的使命是帮助移动开发者和Web开发者迈向成功,但考虑到Firebase每个月有超过200万个活跃的应 ... [详细]
  • socket8 [命名管道]
    ::命名管道不但能实现同一台机器上两个进程通信,还能在网络中不同机器上的两个进程之间的通信机制。与邮槽不同,命名管道是采用基于连接并且可靠的传输方式,所以命名管道传输数据只能一对一 ... [详细]
  • 1、创建高级对象使用构造函数来创建对象构造函数是一个函数,调用它来例示并初始化特殊类型的对象。可以使用new关键字来调用一个构造函数。下面给出了使用构造函数的新示例。 ... [详细]
  • PythonDay3
    #Author:ZhaoBin#实现对Haproxy配置文件的增删改查deffetch(backend):result[]withopen('ha.conf',&# ... [详细]
  • 模仿邮件登录系统
    模仿邮件登录系统码云代码库:https:gitee.compinaomansgiteemail_login.git实验结果图:验证用户名、密码不能为空,并提示用户名或密码错误提示用 ... [详细]
  • 1、对于List而言,要不然就使用迭代器,要不然就从后往前删除,从前往后删除会出现角标越界。因为我List有两个remove方法,一个是int作为形参(删除指定位置的元素),一个是 ... [详细]
  • salesforce lightning零基础学习(七) 列表展示数据时两种自定义编辑页面
    上一篇Lightning内容描述的是LDS,通过LDS可以很方便的实例化一个对象的数据信息。当我们通过列表展示数据需要编辑时,我们常使用两种方式去处理编辑页面:PopUpWindo ... [详细]
author-avatar
太阳神夜
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有