Question

Je développe une version mobile d'un site Web. J'utilise actuellement ce Javascript pour détecter et rediriger l'utilisateur:

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

Fonctionne très bien avec l'iPhone et l'iPod, mais pas de succès avec Android. J'utilise l'émulateur Android au sein d'Eclipse. Je n'ai pas un gadget Android pour tester réellement.

Est-ce que je fais quelque chose de mal? Toute personne ayant le même problème?

Était-ce utile?

La solution

Vous devez utiliser location.replace au lieu de window.location
Exemple:

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

J'ai utilisé ce code et il fonctionne sur iPhone / iTouch et téléphones / appareils Android.

Autres conseils

est ici fonction JavaScript pour détecter la mine appareil 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 ne fonctionne pas dans Android? Vraiment? Semble fonctionne très bien pour moi sur Android 2.3.4. Quelle version (s) d'Android, avez-vous les gars utiliser où vous ne pourriez pas obtenir window.location charger avec succès une nouvelle URL dans le navigateur?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top