Mengesan Putaran Telefon Android dalam Penyemak Imbas dengan JavaScript
Dalam pelayar iOS, pembangun boleh mengesan putaran skrin menggunakan acara onorientationchange dan tetingkap pertanyaan.orientation untuk sudut. Bolehkah kefungsian serupa dicapai pada telefon pintar Android?
Gelagat Penyemak Imbas pada Android
Tidak seperti iOS, gelagat acara putaran skrin pada Android berbeza-beza merentas peranti. Peristiwa ubah saiz dan perubahan orientasi mungkin berlaku dalam urutan dan frekuensi yang berbeza. Selain itu, nilai seperti screen.width dan window.orientation boleh berkelakuan tidak konsisten. Bergantung pada screen.width semata-mata tidak boleh dipercayai kerana ia tidak berubah apabila berputar dalam iOS.
Pendekatan Boleh Dipercayai
Untuk menangani ketidakkonsistenan ini, disyorkan untuk mendengar kedua-dua ubah saiz dan orientasiTukar acara, digabungkan dengan pengundian sekejap-sekejap. Ini memastikan penangkapan nilai orientasi yang sah walaupun dalam senario di mana peristiwa tidak menyala secara konsisten.
var previousOrientation = window.orientation; var checkOrientation = function(){ if(window.orientation !== previousOrientation){ previousOrientation = window.orientation; // Handle orientation change } }; window.addEventListener("resize", checkOrientation, false); window.addEventListener("orientationchange", checkOrientation, false); // Polling as a safety catch for 180-degree rotations setInterval(checkOrientation, 2000);
Hasil Pengujian
Pengujian pada pelbagai peranti Android mendedahkan variasi ketara:
Device | Events Fired | 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 |
90 | 400 | 400 |
Samsung Galaxy Tablet (Portrait) | OrientationChange OrientationChange OrientationChange Resize |
0 | 683 | 683 |
Atas ialah kandungan terperinci Bagaimana Mengesan Putaran Telefon Android dengan Amanah dalam Penyemak Imbas Menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!