2010-02-12 20 views
7

Ich entwickle eine mobile Version einer Website. Ich verwende derzeit dieses Javascript, um den Benutzer zu erkennen und umzuleiten:Android Emulator Browser Erkennung

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

Funktioniert gut mit iPhone und iPod, aber kein Erfolg mit Android. Ich benutze den Android Emulator in Eclipse. Ich habe kein Android-Gadget, um es tatsächlich zu testen.

Mache ich etwas falsch? Wer hat das gleiche Problem?

Antwort

12

Sie sollten location.replace statt window.location verwenden

Beispiel:

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

ich diesen Code verwendet, und es funktioniert auf dem iPhone/iTouch und Android-Handys/Geräte.

+0

Vielen Dank, mein Herr. :) – Vitor

+0

Das hat mir auch geholfen. Nur um es klar zu sagen, es scheint, dass windows.location auf Android nicht unterstützt wird. location.replace() funktioniert gut. – Symmetric

3

Hier ist meine JavaScript-Funktion Android-Gerät zu erkennen:

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/) 
}; 
+1

Danke, Sir, ich habe danach gesucht. – nym

0

window.location funktioniert nicht in Android? "Ja wirklich?" Scheint, für mich auf Android 2.3.4 gut zu funktionieren. Welche Version (en) von Android hast du benutzt, wo du window.location nicht bekommen hast, um eine neue URL erfolgreich im Browser zu laden?