7

ウェブサイトのモバイル版を開発しています。私は現在、このJavascriptを使用してユーザーを検出してリダイレクトしています:

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

iPhone と iPod では問題なく動作しますが、Android ではうまくいきません。Eclipse 内で Android Emulator を使用しています。実際にテストするための Android ガジェットはありません。

私は何か間違ったことをしていますか?同じ問題を抱えている人はいますか?

4

2 に答える 2

12

window.locationの代わりにlocation.replaceを使用する必要があります 例:

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

私はこのコードを使用しました、そしてそれはiphone/itouchとandroid電話/デバイスで動作します。

于 2010-02-16T17:00:11.353 に答える
3

Androidデバイスを検出するための私のJavaScript関数は次のとおりです。

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/)
};
于 2011-11-09T15:38:31.613 に答える