Pregunta

Estoy desarrollando una versión móvil de un sitio web. Actualmente estoy usando este Javascript para detectar y redirigir al usuario:

if((navigator.userAgent.match(/iPhone/i)) || 
                (navigator.userAgent.match(/Android/i)) ||
                (navigator.userAgent.match(/iPod/i))) 
        { 
        window.location = "http://sitename.com/m/";
    }

Funciona bien con el iPhone y el iPod, pero sin éxito con Android. Estoy usando el emulador de Android en Eclipse. No tengo un aparato Android para probar realmente.

¿Estoy haciendo algo mal? Cualquier persona que tenga el mismo problema?

¿Fue útil?

Solución

Debe utilizar location.replace en lugar de window.location
Ejemplo:

if( (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/Android/i)) || (navigator.userAgent.match(/iPod/i)) ) { 
    location.replace("http://sitename.com/m/");
}

He utilizado este código y que funciona en el iPhone / iTouch y teléfonos android / dispositivos.

Otros consejos

Esta es la función JavaScript para detectar las minas dispositivo Android:

function isAndroid() {
    var ua = navigator.userAgent;
    return ua.match(/Android/) 
        || ua.match(/Dalvik/)
        || ua.match(/GINGERBREAD/)
        || ua.match(/Linux;.*Mobile Safari/)
        || ua.match(/Linux 1\..*AppleWebKit/)
};

window.location no funciona en Android? De Verdad? Parece funcionar muy bien para mí en Android 2.3.4. ¿Qué versión (s) de Android ¿Ustedes utiliza donde no se podía conseguir con éxito window.location para cargar un nuevo URL en el navegador?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top