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!