Pergunta

Estou desenvolvendo uma versão móvel de um site. Atualmente, estou usando este JavaScript para detectar e redirecionar o usuário:

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

Funciona bem com iPhone e iPod, mas sem sucesso com o Android. Estou usando o emulador Android no Eclipse. Eu não tenho um gadget do Android para realmente testá -lo.

Estou fazendo algo errado? Alguém mais está tendo o mesmo problema?

Foi útil?

Solução

Você deveria usar Location.Rplace ao invés de Window.Location

Exemplo:

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

Usei esse código e ele funciona em telefones/dispositivos para iPhone/ITouch e Android.

Outras dicas

Aqui está a função JavaScript MINE para detectar o 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 não funciona no Android? Sério? Parece funcionar muito bem para mim no Android 2.3.4. Qual (s) versão do Android vocês usaram onde não conseguiu o Window.Location para carregar com sucesso um novo URL no navegador?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top