Javascript检测android原生浏览器

我想用javascript检测本机android浏览器(安装在每个Android手机上的浏览器)。

我应该在useragent中寻找什么?

这应该工作。

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

希望,它对你也很有用…… 🙂

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

尝试这样的事情:

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

要么

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