11

我想用 javascript 检测原生 android 浏览器(每个 android 手机上都安装的那个)。

我应该在 useragent 中寻找什么?

4

4 回答 4

15

这应该有效。

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));
于 2013-10-23T14:29:47.843 回答
8

原生浏览器,我们一开始无法检测到自己,使用上面提到的代码:

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));

对于大多数设备,我们得到以下作为 chrome 浏览器的用户代理:

在此处输入图像描述

在本机浏览器中:

在此处输入图像描述

并针对三星 Galaxy S3、HTC 渴望、华硕 Zenfone5 进行了此项观察。



并发现大多数设备都存在“Chrome/30.0.0.0”或“chrome/”以及该版本,包括 Zenfone 5、Samsung Galaxy s3。但是“版本/”没有。存在于用户代理对象中足以区分本机和 Chrome。

我们使用了以下代码:

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

希望,它对你也有用...... :)

于 2015-01-23T13:59:06.410 回答
3

有关不同用户代理字符串的概述,请参阅此页面。

于 2013-02-05T07:17:52.703 回答
-3

尝试这样的事情:

var ua = navigator.userAgent.toLowerCase();
var isAndroid = ua.indexOf("android") > -1; //&& ua.indexOf("mobile");
if(isAndroid) {
  // Do something
}

或者

检查这个网址: http ://davidwalsh.name/detect-android

于 2013-02-05T07:17:12.157 回答