Domanda

sto sviluppando una versione mobile di un sito web. Attualmente sto usando questa Javascript per rilevare e reindirizzare l'utente:

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

Funziona bene con iPhone e iPod, ma senza successo con Android. Sto usando l'emulatore di Android all'interno di Eclipse. Non ho un gadget Android per testare in realtà.

Sto facendo qualcosa di sbagliato? Chiunque abbia lo stesso problema?

È stato utile?

Soluzione

Si dovrebbe usare location.replace al posto di window.location
Esempio:

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

Ho usato questo codice e funziona su iPhone / iTouch e telefoni Android / dispositivi.

Altri suggerimenti

Ecco la mia funzione JavaScript per rilevare 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 non funziona in Android? Veramente? Sembra funzionare bene per me su Android 2.3.4. Quale versione (s) di Android ha fatto voi ragazzi uso dove non si poteva ottenere window.location per caricare con successo un nuovo URL nel browser?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top