如何只检测原生Android浏览器

时间:2012-02-15 00:36:50

标签: javascript jquery android jquery-mobile

很容易检测到Android设备,但我只能检测到Android原生浏览器。问题是Dolphin浏览器有一个几乎相同的用户代理字符串,我想知道他们是否使用本机浏览器..

这可能吗?

5 个答案:

答案 0 :(得分:19)

您只需要测试用户代理字符串的一些部分,以确保您拥有默认的Android浏览器:

var nua = navigator.userAgent;
var is_android = (nua.indexOf('Mozilla/5.0') > -1 && nua.indexOf('Android ') > -1 && nua.indexOf('AppleWebKit') > -1);

您可以使用以下内容确保您在Android中不匹配chrome,尽管现在很多设备上都使用chrome作为默认浏览器。

var nua = navigator.userAgent;
var is_android = ((nua.indexOf('Mozilla/5.0') > -1 && nua.indexOf('Android ') > -1 && nua.indexOf('AppleWebKit') > -1) && !(nua.indexOf('Chrome') > -1));

修改 如果要防止区分大小写,可以使用以下命令:

var nua = navigator.userAgent.toLowerCase();
var is_android = ((nua.indexOf('mozilla/5.0') > -1 && nua.indexOf('android ') > -1 && nua.indexOf('applewebkit') > -1) && !(nua.indexOf('chrome') > -1));

答案 1 :(得分:2)

我认为你正在寻找这个:

Android原生浏览器未在版本534.30上更新,因此您可以过滤到版本和 Android UA字符串组合(上面我们可以假设它是Chrome浏览器)

以下是我的示例JavaScript代码:

(如果您需要特定样式,我会使用以下JS代码段向主体添加一个类)

var defectAndroid = $window.navigator && $window.navigator.userAgent.indexOf('534.30') > 0 && $window.navigator.userAgent.toLowerCase().match(/android/);

if (defectAndroid) {
   // sample code specific for your Android Stock browser
}

(某些Android设备报告' android'这就是我们需要小写会话的原因)

答案 2 :(得分:2)

在Galaxy S3上,我发现Chrome和原生浏览器都有AppleWebkit'所以我把这篇文章从条件陈述中删除了。我还添加了版本,因为它只出现在本机浏览器中。它适用于我

var ua = navigator.userAgent;
var isAndroidNative = ((ua.indexOf('Mozilla/5.0') > -1) && (ua.indexOf('Android') > -1) && !(ua.indexOf('Chrome') > -1) && (ua.indexOf('Version') > -1))

答案 3 :(得分:-7)

var ua = navigator.userAgent.toLowerCase();
var isAndroid = ua.indexOf("android") > -1; //&& ua.indexOf("mobile");
if(isAndroid) {
    // Do something!
    // Redirect to Android-site?
    window.location = 'http://android.davidwalsh.name';
}

答案 4 :(得分:-11)

您可以使用Javascript和useragent功能执行此操作。你需要做的是提出2个If-requests:

首先检测设备类型:

If android, ios, mobile, ipad, iphone 
   Take this setting

现在,您可以根据需要制作if-requests或case-request来检测浏览器的类型

If chrome, firefox, safari and so on
   Take this setting

理论上就是这样:)