栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

检测设备是否为iOS

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

检测设备是否为iOS

我不喜欢User Agent嗅探,但是这是你的处理方式:

var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;

另一种方法是依靠

navigator.platform

var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);

iOS
将是
true
false

为什么不使用MSStream

微软在IE11中注入了iPhone一词,

userAgent
以试图以某种方式欺骗Gmail。因此,我们需要排除它。关于这方面更多的信息在这里和这里。

以下是IE11的更新

userAgent
(适用于Windows Phone 8.1的Internet Explorer更新):

Mozilla / 5.0(移动; Windows Phone 8.1; Android 4.0; ARM; Trident / 7.0;触摸; rv:11.0; IEMobile / 11.0; NOKIA; Lumia 930),例如iPhone OS 7_0_3 Mac OS X AppleWebKit / 537(KHTML,例如Gecko)移动Safari / 537

无需使用正则表达式即可轻松添加更多设备:

function iOS() {  var iDevices = [    'iPad Simulator',    'iPhone Simulator',    'iPod Simulator',    'iPad',    'iPhone',    'iPod'  ];  if (!!navigator.platform) {    while (iDevices.length) {      if (navigator.platform === iDevices.pop()){ return true; }    }  }  return false;}

iOS()
将是
true
false

注意:无论

navigator.userAgent
并且
navigator.platform
可以由用户或浏览器扩展伪造。

检测iOS版本

检测iOS版本的最常见方法是通过User Agent字符串进行解析。但是也有特征检测推论* ;

我们知道,一个事实,

history API
在引进的iOS4 -
matchMedia API
在iOS5中 -
webAudio API
在iOS6的 -
WebSpeech
API在iOS7等..

注意:以下代码不可靠,如果在更新的iOS版本中不推荐使用这些HTML5功能,则这些代码将中断。你被警告了!

function iOSversion() {  if (/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) {    if (!!window.indexedDB) { return 'iOS 8 and up'; }    if (!!window.SpeechSynthesisUtterance) { return 'iOS 7'; }    if (!!window.webkitAudioContext) { return 'iOS 6'; }    if (!!window.matchMedia) { return 'iOS 5'; }    if (!!window.history && 'pushState' in window.history) { return 'iOS 4'; }    return 'iOS 3 or earlier';  }  return 'Not an iOS device';}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/390643.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号