¿Cómo puedo detectar que el dispositivo en uso es un Android para un sitio web móvil?Detectar teléfono Android a través de Javascript/jQuery
Necesito aplicar ciertos atributos CSS a la plataforma Android.
Gracias
¿Cómo puedo detectar que el dispositivo en uso es un Android para un sitio web móvil?Detectar teléfono Android a través de Javascript/jQuery
Necesito aplicar ciertos atributos CSS a la plataforma Android.
Gracias
Tome un vistazo a eso: 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:
versión$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
if(stripos($ua,'android') !== false) { // && stripos($ua,'mobile') !== false) {
header('Location: http://android.davidwalsh.name');
exit();
}
js, las capturas iPad también:
var is_mobile = /mobile|android/i.test (navigator.userAgent);
No funciona porque atrapa muchos dispositivos, no solo Android como lo requiere la pregunta. – NickG
Use al menos algo como esto: /android.*(?=mobile)/i.test(navigator.userAgent); para detectar el teléfono Android. Pero esta expresión regular contiene cuantificadores "caros", por lo que la respuesta de Philip con 2 pruebas separadas puede ser más apropiada. –
¿Qué tal este one-liner?
var isAndroid = /(android)/i.test(navigator.userAgent);
El modificador de i
se utiliza para realizar caso-insensible a juego.
técnica tomada del proyecto de prueba 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')
}
})()
Creo que la respuesta de Michal es el mejor, pero no podemos dar un paso más allá y cargar dinámicamente una CSS Android como por la pregunta original :
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);
}
¿Por qué querrías hacer eso, mientras puedes usar consultas de medios? La detección de dispositivos JS debe ser solo para mejoras, como agregar una invitación para instalar su aplicación. La representación de la página nunca debe confiar en ella, ya que tendrá problemas de rendimiento y una experiencia de uso horrible. – camilokawerin
@camilokawerin Su comentario debe estar dirigido al autor. Simplemente estaba dando una respuesta a su pregunta. Sin embargo, hay casos en los que desea un CSS específico de la plataforma. Por ejemplo, si desea que el estilo visual de la interfaz coincida con el dispositivo. – drlarsen
No hay necesidad de jQuery aquí. Como ya se mencionó anteriormente, debe verificarlo utilizando la propiedad del agente de usuario. Si está interesado en detectar otras plataformas también, o simplemente si está en un dispositivo móvil en general, escribí este is-mobile component que puede detectarlo.
dude en importar y utilizar como se muestra en estos ejemplos:
isMobile.Android() => true/false
isMobile.iOS() => true/false
isMobile.Windows() => true/false
isMobile.KindleFire() => true/false
isMobile.any() => true/false
Su solución es excelente, pero aún requiere que se compruebe si no es Windows cuando se busca Android debido al agente de usuario de Mobile Edge que contiene la coincidencia de la palabra clave "android". Por supuesto, este es un problema menor debido a la falta de dispositivos de teléfono de Windows reales. Hasta ahora, este es el mejor que veo en esta página. – Felype
Gracias por la entrada @Felype! Actualicé mi solución para manejar el caso límite que mencionaste. –
que sir es una leyenda. – Xavier
no olvide verificar también las tabletas de Android: http://googlewebmastercentral.blogspot.com/2011/03/mo-better-to-also-detect-mobile-user.html –
Vale la pena señalar que esto no siempre funcionan para dispositivos Android como, por ejemplo, los agentes de usuario informados por dispositivos Kindle Fire HD no contienen la palabra 'android' en absoluto. – djbp