如何检测没有 chrome 的移动 safari?

Posted

技术标签:

【中文标题】如何检测没有 chrome 的移动 safari?【英文标题】:How to detect mobile safari without chrome? 【发布时间】:2015-01-13 21:49:06 【问题描述】:

我正在尝试了解如何检测用户何时在移动 Safari 中打开我的网站。 Chrome 和 safari 具有完全相同的参数: Chrome "Mozilla/5.0 (iPad; CPU OS 8_1_2 like Mac OS X) AppleWebKit/600.1.4 (Khtml, like Gecko) Version/8.0 Mobile/12B440 Safari/600.1.4" Safari "Mozilla/5.0 (iPad; CPU OS 8_1_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B440 Safari/600.1.4" 有什么方法可以只检测移动 safari?

【问题讨论】:

【参考方案1】:

Chrome 开发者网站声明:

Chrome for ios 中的 UA 与 Mobile Safari 用户代理相同,使用 CriOS/ 而不是 Version/

所以正确的用户代理检查将是:

 var ua = navigator.userAgent;
 if (ua.match(/(iPod|iPhone|iPad)/) !== null && ua.match(/AppleWebKit/) !== null && ua.search('CriOS') < 0) 
     alert("You are using Mobile Safari!");
  else 
     alert("Whatever this is, it's not Mobile Safari...");
 

这是小提琴 - https://jsfiddle.net/h8j9n2m5/1/。在 iPad iOS 7.0.4、Mobile Safari 7.0 上检查了自己,就像一个魅力 :)

【讨论】:

以上是关于如何检测没有 chrome 的移动 safari?的主要内容,如果未能解决你的问题,请参考以下文章

移动 Safari/Chrome 上的 Angular 应用程序中出现严重的键盘延迟

关闭会话时未删除移动浏览器(chrome、safari)cookie

如何检测移动到 Mobile Safari 中的新选项卡

如何使用 jQuery 检测浏览器是不是是 Chrome?

您如何在移动 safari 上检测 3G 与 Wifi 连接?

如何使用 Modernizr 检测对即时滚动事件的支持?