通过Javascript/jQuery检测Android手机

Xav*_*ier 112 javascript jquery android

我如何检测到正在使用的设备是移动网站的Android?

我需要将某些css属性应用于Android平台.

谢谢

Mic*_*oso 207

看一下:http://davidwalsh.name/detect-android

JavaScript的:

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';
}
Run Code Online (Sandbox Code Playgroud)

PHP:

$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
if(stripos($ua,'android') !== false) { // && stripos($ua,'mobile') !== false) {
  header('Location: http://android.davidwalsh.name');
  exit();
}
Run Code Online (Sandbox Code Playgroud)

编辑:正如在一些评论中所指出的,这将在99%的情况下起作用,但是一些边缘情况不包括在内.如果你需要一个更高级和防弹的JS解决方案,你应该使用platform.js:https://github.com/bestiejs/platform.js

  • 不要忘记检查Android平板电脑:http://googlewebmastercentral.blogspot.com/2011/03/mo-better-to-also-detect-mobile-user.html (5认同)
  • navigator.userAgent方法不适用于三星galaxy设备.浏览器规范中没有"Android". (3认同)
  • 您的解决方案不起作用.这是诺基亚Lumia用户代理.你猜怎么着?它匹配为android:`Mozilla/5.0(移动; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 625; Orange),如iPhone OS 7_0_3 Mac OS X AppleWebKit/537(KHTML,像Gecko)Mobile Safari/537` (3认同)
  • 先生,你是一个传奇。 (2认同)
  • 值得注意的是,这并不总是适用于Android设备,例如,Kindle Fire HD设备报告的用户代理根本不包含"android"这个词. (2认同)
  • JS解决方案的前两行可以简化为:`var isAndroid = /Android/i.test(navigator.userAgent)` (2认同)

Mar*_*son 40

这个单班轮怎么样?

var isAndroid = /(android)/i.test(navigator.userAgent);
Run Code Online (Sandbox Code Playgroud)

所述i改性剂被用于执行不区分大小写匹配.


技术取自Cordova AdMob测试项目:https://github.com/floatinghotpot/cordova-admob-pro/wiki/00.-How-To-Use-with-PhoneGap-Build

  • 这里的括号可以省略,因为你不需要“捕获”结果,所以它就变成:`/android/i` (5认同)