Bagaimana Mengesan Putaran Telefon Android dengan Amanah dalam Penyemak Imbas Menggunakan JavaScript?

Barbara Streisand
Lepaskan: 2024-10-30 15:18:59
asal
851 orang telah melayarinya

How to Reliably Detect Android Phone Rotation in Browsers Using JavaScript?

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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!