检测Android设备很容易,但我遇到了检测仅限Android本地浏览器的问题。问题在于Dolphin浏览器有几乎相同的用户代理字符串,我希望有一种方法可以知道他们是否正在使用本地浏览器。
这种可能吗?
检测Android设备很容易,但我遇到了检测仅限Android本地浏览器的问题。问题在于Dolphin浏览器有几乎相同的用户代理字符串,我希望有一种方法可以知道他们是否正在使用本地浏览器。
这种可能吗?
你只需要测试用户代理字符串的几个部分,以确保你拥有默认的安卓浏览器:
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));
var nua = navigator.userAgent;
var is_android = ((nua.match(/Mozilla\/5\.0/gi) !== null && nua.match(/Android/gi) !== null && nua.match(/AppleWebKit/gi) !== null) && (nua.match(/Chrome/gi) !== null));
PS 如何换行?两个空格不起作用 :/ - Arek - Krakiewicz.plAndroid原生浏览器未更新到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”,因此我们需要进行小写转换)
在一台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))
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';
}
你可以使用JavaScript和用户代理特性来完成这个目标。你需要做的是两个if请求:
第一步,检测设备类型:
If android, ios, mobile, ipad, iphone
Take this setting
现在,您可以使用if请求或case请求来检测浏览器类型,以满足您的需求。
If chrome, firefox, safari and so on
Take this setting
这就是理论上的全部内容 :)