检测用户是否通过iphone上的safari移动浏览器导航

Detect if the user is navigating through the safari mobile browser on iphone

本文关键字:safari 移动 浏览器 导航 上的 iphone 用户 是否 检测      更新时间:2023-09-26

我正在尝试检测用户是否正在使用jquery/javascript从iphone的safari浏览器浏览我的网站。

我能够使用用户代理字符串

检测IOS环境

/iphone/i.test(navigator.userAgent.toLowerCase())

但这检测到Apple Webkit环境,即它对设备上的所有浏览器都是相同的。有人能提出不同的建议吗?

更新:


试试这个,在iPhone中检测Safari浏览器:

var isSafari = !!navigator.userAgent.match(/Version'/['d'.]+.*Safari/);

它识别Safari 3.0+并将其与Chrome区分开来。

JsFiddle

因为另一个答案不包括iPhone的检测,包括那部分。

var isIphone = /(iPhone)/i.test(navigator.userAgent);
var isSafari = !!navigator.userAgent.match(/Version'/['d'.]+.*Safari/);
if(isIphone && isSafari){
    //do something
}

如果你想检测一个特定的iOS版本及以上版本,比如iOS 7.0及以上版本,那么你可以使用下面的代码。它检测iOS版本7-19(对于即将发布的版本)。

var isIphone= /(iPhone)*(OS ([7-9]|1[0-9])_)/i.test(navigator.userAgent);  

var isFirefox = navigator.userAgent.indexOf("FxiOS") != -1;  
var isChrome = navigator.userAgent.indexOf("CriOS") != -1;  
var isEdge = navigator.userAgent.indexOf("EdgiOS") != -1;  
var isOpera = navigator.userAgent.indexOf("OPT") != -1;
if (!isFirefox && !isChrome && !isEdge && !isOpera){  
  console.log("Only display in Safari")  
} else {  
  console.log("Only display in Firefox/Chrome/Edge/Opera")  
}        

嗨,这种方式对我来说只检测ios手机中的safari。值FxiOs, CriOs等,我从userAgent的值。