Обнаружение телефона Android с помощью Javascript / jQuery


Как бы я обнаружил, что устройство в использовании является Android для мобильного веб-сайта?

Мне нужно применить определенные атрибуты css к платформе Android.

спасибо

5 97

5 ответов:

взгляните на это: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();
}

Edit : как указано в некоторых комментариях, это будет работать в 99% случаев, но некоторые крайние случаи не охватываются. Если вам нужно гораздо более продвинутое и пуленепробиваемое решение в JS, вы должны использовать платформу.js:https://github.com/bestiejs/platform.js

Как насчет этого-вкладыш?

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

The i модификатор используется для поиска совпадений без учета регистра.


метод, взятый из тестового проекта Cordova AdMob: https://github.com/floatinghotpot/cordova-admob-pro/wiki/00.-How-To-Use-with-PhoneGap-Build

;(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')
    }
})()

Я думаю, что ответ Михала является лучшим, но мы можем сделать еще один шаг и динамически загрузить 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);
}

js версия, ловит iPad тоже:

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