Как определить поддержку браузера и устройства для гироскопа и акселерометра в Javascript? - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть веб-сайт, который производит впечатление VR, используя 360 фотографий.

Недавно Apple обновила iOS до 12.2 и по умолчанию отключила доступ safari к датчикам «движения и ориентации».

Поэтому мне нужно добавить раздел javascript, который будет определять наличие гироскопа и акселерометра и предлагать пользователю разрешить доступ (если имеется).

Я нашел два более ранних предложения по коду для стекового потока, которые предназначены для определения поддержки этих датчиков, но при тестировании на моем iPhone 6s с iOS 12.2 оба решения сообщают, что гироскопа нет, что не так. И да, доступ к движению и ориентация включены.

Вот пример из предыдущего решения .....

var canHandleOrientation;
if (window.DeviceOrientationEvent) {
    window.addEventListener("deviceorientation", handleOrientation, false);
}

function handleOrientation(event){
  console.log("Orientation:" + event.alpha + ", " + event.beta + ", " + event.gamma);
  canHandleOrientation = event; // will be either null or with event data
}

if (!canHandleOrientation) {alert("There is no gyroscope")

В этом тестовом скрипте есть предупреждение «Нет гироскопа», которое должно появляться, если нет данных от гироскопа. Поскольку в iPhone 6s есть гироскоп, я не ожидал увидеть это сообщение, но оно есть.

...