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