ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript はブラウザーでの Android スマートフォンの回転を確実に検出できますか?

JavaScript はブラウザーでの Android スマートフォンの回転を確実に検出できますか?

Mary-Kate Olsen
リリース: 2024-10-29 17:54:02
オリジナル
204 人が閲覧しました

  Can JavaScript Reliably Detect Android Phone Rotation in a Browser?

JavaScript はブラウザで Android デバイスの回転を検出できますか?

ブラウザでの画面の向きの検出

iPhone の Safari では、画面向きの変化は、onorientationchange イベントを通じて検出できます。ただし、次のような疑問が生じます: Android スマートフォンでも同様の方向検出機能を提供できますか?

JavaScript と Android Phone Rotation

Android デバイス間で方向検出の動作は大きく異なります。サイズ変更イベントと方向変更イベントは、異なるシーケンスで一貫性のない頻度で起動される場合があります。さらに、screen.width や window.orientation などの値は、常に期待どおりに更新されるわけではありません。

回転を検出するための信頼できるアプローチ

信頼性を確保するには、以下をサブスクライブすることをお勧めします。サイズ変更イベントと方向変更イベントの両方。さらに、ポーリング メカニズムを実装して、欠落したイベントをキャプチャすることもできます。

<code class="javascript">var previousOrientation = window.orientation;
var checkOrientation = function(){
    if(window.orientation !== previousOrientation){
        previousOrientation = window.orientation;
        // orientation changed, take appropriate actions
    }
};

window.addEventListener("resize", checkOrientation, false);
window.addEventListener("orientationchange", checkOrientation, false);

// (optional) Android may fail to fire events on 180 degree rotations
setInterval(checkOrientation, 2000);</code>
ログイン後にコピー

デバイス固有の結果

さまざまなデバイスでのテストにより、不一致が明らかになりました。 iOS デバイスは一貫した動作を示しますが、Android デバイスはばらつきを示します。以下の表は、観察された結果をまとめたものです:

Device Events Fired Orientation innerWidth screen.width
iPad 2 (landscape to portrait) resize, orientationchange 0, 90 1024, 768 768, 768
iPad 2 (portrait to landscape) resize, orientationchange 90, 0 768, 1024 768, 768
iPhone 4 (landscape to portrait) resize, orientationchange 0, 90 480, 320 320, 320
iPhone 4 (portrait to landscape) resize, orientationchange 90, 0 320, 480 320, 320
Droid phone (portrait to landscape) orientationchange, resize 90, 90 320, 569 320, 569
Droid phone (landscape to portrait) orientationchange, resize 0, 0 569, 320 569, 320
Samsung Galaxy Tablet (landscape to portrait) orientationchange, orientationchange, orientationchange, resize, orientationchange 0, 90, 90, 90, 90 400, 400, 400, 683, 683
Samsung Galaxy Tablet (portrait to landscape) orientationchange, orientationchange, orientationchange, resize, orientationchange 90, 90, 0, 90, 90 683, 683, 683, 400, 400

したがって、ブラウザーの JavaScript を使用して Android スマートフォンの回転を検出することは可能ですが、動作はデバイスによって異なり、信頼性を確保するには堅牢なアプローチが必要です。

以上がJavaScript はブラウザーでの Android スマートフォンの回転を確実に検出できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート