Обнаружение телефона Android с помощью Javascript / jQuery
Как бы я обнаружил, что устройство в использовании является Android для мобильного веб-сайта?
Мне нужно применить определенные атрибуты css к платформе Android.
спасибо
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); }