繁体   English   中英

通过 Javascript / jQuery 检测 Android 电话

[英]Detect Android phone via Javascript / jQuery

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

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

谢谢

看一下: 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';
}

PHP:

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

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

这个单班轮怎么样?

var isAndroid = /(android)/i.test(navigator.userAgent);

i修饰符用于执行不区分大小写的匹配。


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

我认为Michal的答案是最好的,但我们可以更进一步,根据原始问题动态加载Android CSS:

var isAndroid = /(android)/i.test(navigator.userAgent);
if (isAndroid) {
    var css = document.createElement("link");
    css.setAttribute("rel", "stylesheet");
    css.setAttribute("type", "text/css");
    css.setAttribute("href", "/css/android.css");
    document.body.appendChild(css);
}
;(function() {
    var redirect = false
    if (navigator.userAgent.match(/iPhone/i)) {
        redirect = true
    }
    if (navigator.userAgent.match(/iPod/i)) {
        redirect = true
    }
    var isAndroid = /(android)/i.test(navigator.userAgent)
    var isMobile = /(mobile)/i.test(navigator.userAgent)
    if (isAndroid && isMobile) {
        redirect = true
    }
    if (redirect) {
        window.location.replace('jQueryMobileSite')
    }
})()

js版本,也抓住了iPad:

var is_mobile = /mobile|android/i.test (navigator.userAgent);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM