проблема ориентации устройства в HTML 5 на Android - PullRequest
0 голосов
/ 25 августа 2011

У меня есть следующий код для проверки ориентации устройства и обработки движения устройства в HTML 5. Я получил это от http://dev.w3.org/geo/api/spec-source-orientation.html. Я протестировал свой код с помощью iPhone3G, и событие движения было перехвачено.Я не знаю, почему ориентация устройства не была поймана.Я считаю, что, поскольку iPhone3G не поддерживает Compass, я не смог перехватить событие 'compassneedscalibration' .

Я протестировал приложение в браузере Android.(HTC Wildfire).Я не мог получить ни одно из событий.Пожалуйста, поделитесь, почему мы не получаем события в Android Mobile?

 window.addEventListener("compassneedscalibration", function(event) {
                  alert('Your compass needs calibrating! Wave your device in a figure-eight motion');
                  event.preventDefault();


     }, true);

    window.addEventListener("deviceorientation", function(event) {
                  // process event.alpha, event.beta and event.gamma
                  alert("deviceorientation");
    }, true);

    window.addEventListener("devicemotion", function(event) {
                  // Process event.acceleration, event.accelerationIncludingGravity,
                  // event.rotationRate and event.interval
                   alert("devicemotion");
    }, true);

ОБНОВЛЕНИЕ 1

Во время тестирования на iPhone и iPad я заметил одну вещь:устройство движется или нет, событие продолжало запускаться непрерывно без остановки.

ОБНОВЛЕНИЕ 2

Я нашел причину вопроса, который я поставил в ОБНОВЛЕНИЕ 1 .Похоже, что API обнаруживает и передает данные акселерометра 50 раз в секунду.

Ответы [ 3 ]

2 голосов
/ 26 августа 2011

Я узнал, что в настоящее время эти функции реализованы только в браузерах Safari для iOS.Поэтому мы не можем перехватывать эти события в iOS.

SOURCE: http://www.mobilexweb.com/samples/ball.html

1 голос
/ 25 августа 2011

Попробуйте вместо этого прослушать событие «изменить размер» в Android.Если вы используете jQuery, ваш код может выглядеть следующим образом:

$(window).bind('resize', function() {
    alert('resize!');
});
0 голосов
/ 08 декабря 2011

на iOS, событие, которое нужно перехватить, - «onorientationchange»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...