Rumah > hujung hadapan web > tutorial js > Bolehkah JavaScript Mengesan Putaran Telefon Android dengan Amanah dalam Penyemak Imbas?

Bolehkah JavaScript Mengesan Putaran Telefon Android dengan Amanah dalam Penyemak Imbas?

Mary-Kate Olsen
Lepaskan: 2024-10-29 17:54:02
asal
198 orang telah melayarinya

  Can JavaScript Reliably Detect Android Phone Rotation in a Browser?

Bolehkah JavaScript Mengesan Putaran Peranti Android dalam Penyemak Imbas?

Mengesan Orientasi Skrin dalam Penyemak Imbas

Dalam Safari pada iPhone, skrin perubahan orientasi boleh dikesan melalui acara onorientationchange. Walau bagaimanapun, persoalan timbul: Bolehkah telefon Android menyediakan keupayaan pengesanan orientasi yang serupa?

JavaScript dan Putaran Telefon Android

Gelagat pengesanan orientasi merentas peranti Android berbeza dengan ketara. Peristiwa ubah saiz dan perubahan orientasi mungkin berlaku dalam urutan yang berbeza dengan kekerapan yang tidak konsisten. Selain itu, nilai seperti screen.width dan window.orientation tidak sentiasa dikemas kini seperti yang dijangkakan.

Pendekatan Boleh Dipercayai untuk Mengesan Putaran

Untuk memastikan kebolehpercayaan, disyorkan untuk melanggan kedua-dua ubah saiz dan orientasiTukar peristiwa. Selain itu, mekanisme pengundian boleh dilaksanakan untuk menangkap acara terlepas:

<code class="javascript">var previousOrientation = window.orientation;
var checkOrientation = function(){
    if(window.orientation !== previousOrientation){
        previousOrientation = window.orientation;
        // orientation changed, take appropriate actions
    }
};

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

// (optional) Android may fail to fire events on 180 degree rotations
setInterval(checkOrientation, 2000);</code>
Salin selepas log masuk

Keputusan Khusus Peranti

Ujian pada pelbagai peranti mendedahkan ketidakkonsistenan. Walaupun peranti iOS mempamerkan tingkah laku yang konsisten, peranti Android mempamerkan variasi. Jadual di bawah meringkaskan hasil yang diperhatikan:

Device Events Fired Orientation innerWidth screen.width
iPad 2 (landscape to portrait) resize, orientationchange 0, 90 1024, 768 768, 768
iPad 2 (portrait to landscape) resize, orientationchange 90, 0 768, 1024 768, 768
iPhone 4 (landscape to portrait) resize, orientationchange 0, 90 480, 320 320, 320
iPhone 4 (portrait to landscape) resize, orientationchange 90, 0 320, 480 320, 320
Droid phone (portrait to landscape) orientationchange, resize 90, 90 320, 569 320, 569
Droid phone (landscape to portrait) orientationchange, resize 0, 0 569, 320 569, 320
Samsung Galaxy Tablet (landscape to portrait) orientationchange, orientationchange, orientationchange, resize, orientationchange 0, 90, 90, 90, 90 400, 400, 400, 683, 683
Samsung Galaxy Tablet (portrait to landscape) orientationchange, orientationchange, orientationchange, resize, orientationchange 90, 90, 0, 90, 90 683, 683, 683, 400, 400

Oleh itu, semasa mengesan putaran telefon Android dengan JavaScript dalam penyemak imbas adalah mungkin, tingkah laku berbeza-beza merentas peranti dan memerlukan pendekatan yang mantap untuk memastikan kebolehpercayaan.

Atas ialah kandungan terperinci Bolehkah JavaScript Mengesan Putaran Telefon Android dengan Amanah dalam Penyemak Imbas?. 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