Cabaran Keserasian dalam Mengesan Putaran
Mengesan putaran peranti menggunakan JavaScript dalam penyemak imbas boleh menjadi lebih mencabar pada telefon Android berbanding iPhone, yang mempunyai pendekatan yang jelas. Tingkah laku merentas peranti Android boleh menjadi tidak konsisten, dengan variasi dalam urutan dan kekerapan peristiwa serta perubahan dalam nilai seperti screen.width dan window.orientation.
Pendekatan Boleh Dipercayai untuk Pengesanan Putaran
Untuk menangani ketidakkonsistenan ini, adalah disyorkan untuk mendengar acara ubah saiz dan perubahan orientasi serta melaksanakan tinjauan pendapat sebagai langkah keselamatan. Pendekatan ini memastikan bahawa anda akhirnya akan menerima nilai orientasi yang sah.
<code class="js">var previousOrientation = window.orientation; var checkOrientation = function(){ if(window.orientation !== previousOrientation){ previousOrientation = window.orientation; // Handle orientation change as needed } }; window.addEventListener("resize", checkOrientation, false); window.addEventListener("orientationchange", checkOrientation, false); // (Optional) Poll for orientation changes on Android (180 degree turns) setInterval(checkOrientation, 2000);</code>
Jujukan Peristiwa dan Perubahan Nilai
Jujukan peristiwa dan perubahan dalam nilai berbeza mengikut peranti. Berikut ialah jadual yang meringkaskan hasil daripada pelbagai peranti:
Device | Events Fired (to Landscape) | orientation | innerWidth | screen.width |
---|---|---|---|---|
iPad 2 | resize, orientationchange | 90 | 1024 | 768 |
iPhone 4 | resize, orientationchange | 90 | 480 | 320 |
Droid phone | orientationchange, resize | 90 | 320 | 569 |
Samsung Galaxy Tablet | orientationchange, orientationchange, orientationchange, resize, orientationchange | 90, 90, 90 | 400 | 683 |
Pertimbangan Tambahan
Walaupun pendekatan ini menyediakan cara yang boleh dipercayai untuk mengesan putaran peranti, adalah penting untuk mengekalkan mengingati batasan JavaScript dalam konteks ini. Contohnya, nilai tertentu seperti screen.width mungkin tidak sentiasa berubah seperti yang diharapkan. Anda juga disyorkan untuk mengelak bergantung semata-mata pada screen.width kerana kelakuannya yang tidak konsisten merentas peranti iOS.
Atas ialah kandungan terperinci Bagaimanakah saya boleh Mengesan Putaran Peranti dengan Amanah dalam Penyemak Imbas pada Android dengan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!