iOS 12 веб-событиеListener deviceorientation - PullRequest
1 голос
/ 25 июня 2019

Я пытаюсь реализовать прослушиватель событий 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

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