Я пытаюсь реализовать прослушиватель событий javascript для 'deviceorientation'.
Код:
if (!window.DeviceOrientationEvent) {
alert("Sorry, but Device Orientation is not suported!");
} else {
alert("YES!!!");
window.addEventListener('deviceorientation', orientationHandler);
}
function orientationHandler(e) {
alert(e.gamma); //<--Never show
if(e.beta < 0){
right = true;
left = false;
} else if(e.beta > 0){
right = false;
left = true;
} else {
right = false;
left = false;
}
}
На рабочем столе Chrome выводит предупреждение "Извините, но ориентация устройства не поддерживается!".Когда я тестирую в Safari (iPhone 7, iOS 12.3.1), появляется предупреждение «ДА !!!», но после этого ничего не происходит.
У меня также есть сенсорный слушатель, например:
document.addEventListener("touchstart", touchStartHandler, false);
document.addEventListener("touchend", touchEndHandler, false);
document.addEventListener("touchmove", touchMoveHandler, false);
function touchStartHandler(e) {
mouseOrTouchDown = true;
touchMoveHandler(e);
}
function touchEndHandler(e) {
mouseOrTouchDown = false;
right = false;
left = false;
}
function touchMoveHandler(e) {
if(mouseOrTouchDown){
mouseOrTouchLastX = e.touches[0].clientX - canvas.offsetLeft;
if (mouseOrTouchLastX > paddleX){
right = true;
left = false;
} else if(mouseOrTouchLastX < paddleX){
right = false;
left = true;
} else {
right = false;
left = false;
}
}
}
И он отлично работает.
Я размещаю свой проект на XAMPP.
Я также пробую этот учебник и онлайн-демонстрацию здесь .Когда я открываю онлайн-демонстрацию, она работает на моем телефоне, но когда я получаю код из учебника (или со страницы с демонстрацией), он больше не перемещается, как в моем коде.Я думаю, что, возможно, проблема в XAMPP (я не знаю) или в чем-то подобном, потому что нет другой разницы.
Редактировать: Я пробовал и Note.js http-сервер, но результат тот же.
Я попытался отладить журнал браузера (используя это учебное пособие), но возникли проблемы с отображением устройства в Chrome DevTools (это другое дело) в Windows 8.1.
Я вижу, чтоЯ скучаю.Может быть, есть какой-то флаг доверия или какой-то параметр, который блокирует этот eventListener