很容易检测到Android设备,但我只能检测到Android原生浏览器。问题是Dolphin浏览器有一个几乎相同的用户代理字符串,我想知道他们是否使用本机浏览器..
这可能吗?
答案 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
理论上就是这样:)