3

スクリプト ジェネレーター ( http://detectmobilebrowsers.com/ ) を使用して携帯電話を検出し、電話用の特別なテンプレートを持つサブドメインにページをリダイレクトします。

私は携帯電話だけにしか興味がありません。Ipad、Android タブレットはリダイレクトされません。私が知る必要があるのは、このスクリプトが IPhone 4 と IPhone 5 をカバーしているかどうかだけです。これらのモデルをテストする必要はありません。とにかく、開発者メニュー - ユーザーエージェント - Safari ios 4.3.3 Iphone を使用して Safari でテストしましたが、ページは必要に応じてリダイレクトされます。これで十分ですか、それとも次のスクリプトも使用する必要があります。

var iphone4 = (window.screen.height == (960 / 2)) ? true : false;
var iphone5 = (window.screen.height == (1136 / 2)) ? true : false;
if (iphone4 && iphone5) {
    parent.location.href='http://www.mobile.mysite.com';
}
4

2 に答える 2

5

はい、http: //detectmobilebrowsers.com/ からの正規表現は、iPhone (および iPod Touch) のすべてのバージョンを検出します...ip(hone|od)は、それに一致する正規表現部分です。

iPhone/iPod 専用のスクリプトが必要な場合は、前述のスクリプトを次のように切り詰めることができます。

(function (a, b) { if (/ip(hone|od)/i.test(a)) window.location = b }
)(navigator.userAgent || navigator.vendor || window.opera, 'http://www.mobile.mysite.com');

編集:

または、代わりにこのスクリプトを使用してモバイル デバイスを検出します

(function (a, b) { if (/Mobi/.test(a)) window.location = b }
)(navigator.userAgent || navigator.vendor || window.opera, 'http://www.mobile.mysite.com');

ユーザー エージェントを使用したブラウザ検出の推奨事項に基づく| MDN :

モバイル デバイスを検出するには、ユーザー エージェント内の任意の場所で文字列「Mobi」を検索することをお勧めします。デバイスが「Mobi」とマークされていないほど大きい場合は、デスクトップ サイトを提供する必要があります (タッチスクリーンを備えたデスクトップ マシンが増えているため、ベスト プラクティスとして、とにかくタッチ入力をサポートする必要があります)。

于 2013-03-27T20:32:42.643 に答える
1

これはうまくいくはずです。

var bIsMobile = (navigator.userAgent.toLowerCase().indexOf("mobile") != -1 && navigator.userAgent.toLowerCase().indexOf("ipad") == -1);
于 2013-03-27T20:11:21.203 に答える