emulatore di Android del browser di rilevazione
-
20-09-2019 - |
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?
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?