Rumah  >  Artikel  >  hujung hadapan web  >  Bolehkah JavaScript Mengesan Putaran Telefon Android dalam Penyemak Imbas?

Bolehkah JavaScript Mengesan Putaran Telefon Android dalam Penyemak Imbas?

Susan Sarandon
Susan Sarandonasal
2024-10-26 08:42:02492semak imbas

 Can JavaScript Detect Android Phone Rotation in Browsers?

Pengesanan Berasaskan Javascript bagi Putaran Telefon Android dalam Penyemak Imbas

Dalam penyemak imbas Safari yang dibangunkan Apple, pemantauan perubahan dalam orientasi skrin adalah mungkin melalui pemerhatian acara orientationChange dan penilaian tetingkap .orientasi. Walau bagaimanapun, bolehkah kefungsian tersebut dilaksanakan dalam penyemak imbas yang dijalankan pada peranti Android?

Tindak balas terhadap perkara ini adalah nuansa. Pelaksanaan Javascript pada halaman web standard sememangnya boleh mengesan putaran skrin dalam peranti Android. Walau bagaimanapun, tingkah laku berbeza-beza merentas peranti dan penyemak imbas.

Cabaran dan Pendekatan Disyorkan

Cabaran utama terletak pada gelagat penembakan acara yang tidak konsisten merentas peranti Android. Peristiwa ubah saiz dan orientationChange mungkin menyala secara tidak segerak dengan frekuensi yang berbeza-beza. Untuk menambah kerumitan ini, nilai seperti screen.width dan window.orientation mungkin tidak selalu memberikan hasil yang boleh diramal. Oleh itu, bergantung semata-mata pada screen.width tidak disyorkan kerana ia kekal tidak diubah semasa putaran iOS.

Pendekatan yang paling boleh dipercayai melibatkan mendengar serentak untuk acara ubah saiz dan orientasi. Menambahkan ini dengan tinjauan berkala menggunakan fungsi setInterval meningkatkan kebolehpercayaan, memastikan nilai orientasi yang sah.

<code class="javascript">var previousOrientation = window.orientation;
var checkOrientation = function(){
    if(window.orientation !== previousOrientation){
        previousOrientation = window.orientation;
        // Perform operations in response to orientation change
    }
};

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

// Android occasionally fails to trigger events for 180-degree rotations
setInterval(checkOrientation, 2000);</code>

Hasil Khusus Peranti

Berikut ialah ringkasan gelagat yang diperhatikan merentas pelbagai peranti yang diuji:

Device Event Sequence orientation innerWidth screen.width
iPad 2 (Landscape) resize, orientationchange 90 1024 768
iPad 2 (Portrait) resize, orientationchange 0 768 768
iPhone 4 (Landscape) resize, orientationchange 90 480 320
iPhone 4 (Portrait) resize, orientationchange 0 320 320
Droid Phone (Landscape) orientationchange, resize 90 320 320
Droid Phone (Portrait) orientationchange, resize 0 569 569
Samsung Galaxy Tablet (Landscape) orientationchange, orientationchange, orientationchange, resize, orientationchange 90 400 400
Samsung Galaxy Tablet (Portrait) orientationchange, orientationchange, orientationchange, resize, orientationchange 0 683 683

Atas ialah kandungan terperinci Bolehkah JavaScript Mengesan Putaran Telefon Android dalam Penyemak Imbas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn