«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу надежно определять поворот устройства в браузере на Android с помощью JavaScript?

Как я могу надежно определять поворот устройства в браузере на Android с помощью JavaScript?

Опубликовано 9 ноября 2024 г.
Просматривать:474

How can I Reliably Detect Device Rotation in a Browser on Android with JavaScript?

Определение поворота устройства в браузере на Android с помощью JavaScript

Проблемы совместимости при обнаружении вращения

Определение поворота устройства с помощью JavaScript в Браузер на телефонах Android может быть более сложным по сравнению с iPhone, у которых есть четко определенный подход. Поведение на разных устройствах Android может быть непоследовательным, с различиями в последовательности и частоте событий, а также с изменениями таких значений, как screen.width и window.orientation.

Надежный подход к обнаружению поворота

Чтобы устранить эти несоответствия, рекомендуется прослушивать события изменения размера и ориентации и реализовать опрос в качестве меры безопасности. Такой подход гарантирует, что вы в конечном итоге получите допустимое значение ориентации.

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);

Последовательности событий и изменения значений

Последовательность событий и изменения значений различаются на разных устройствах. Вот таблица, суммирующая результаты с различных устройств:

УстройствоСобытия, запущенные (в альбомную ориентацию)ориентацияinnerWidthscreen.width
iPad 2изменить размер, изменить ориентацию901024768
iPhone 4изменить размер, изменить ориентацию90480320
Droid-телефонизменение ориентации, изменение размера90320569
Samsung Galaxy Tabletorientationchange, ориентацияchange, ориентацияchange, изменение размера, ориентацияchange90, 90, 90400683

Дополнительные соображения

Хотя этот подход обеспечивает надежный способ обнаружения вращения устройства, важно соблюдать имея в виду ограничения JavaScript в этом контексте. Например, некоторые значения, такие как screen.width, могут не всегда меняться должным образом. Также рекомендуется не полагаться исключительно на screen.width из-за его непоследовательного поведения на устройствах iOS.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3