Как заставить DeviceOrientationEvent и DeviceMotionEvent работать в Safari? - PullRequest
2 голосов
/ 09 июня 2019

Я пытаюсь реализовать DeviceOrientationEvent и DeviceMotionEvent на моем веб-сайте для 3D-эффекта. Однако консоль не регистрирует какую-либо информацию, и, очевидно, iOS 13 требует разрешения, установленного пользователем, чтобы начать делать это. Я не могу понять, как правильно его настроить.

Я провел некоторое исследование, и вот что я нашел: https://github.com/w3c/deviceorientation/issues/57#issuecomment-498417027

К сожалению, все остальные методы, предоставляемые онлайн, больше не используются.

window.addEventListener('deviceorientation', function(event) {
    console.log(event.alpha + ' : ' + event.beta + ' : ' + event.gamma);
});

Я получаю следующее сообщение об ошибке:

[Предупреждение] Никакие события движения или ориентации устройства не будут запускаться, пока не будет запрошено и предоставлено разрешение.

1 Ответ

0 голосов
/ 26 июня 2019

Начиная с iOS 13 beta 2, вам необходимо вызвать DeviceOrientationEvent.requestPermission () для доступа к гироскопу или акселерометру. Откроется диалоговое окно с разрешениями, предлагающее пользователю разрешить доступ к движению и ориентации для этого сайта.

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

Кроме того, текущая реализация, похоже, требует, чтобы на сайте был включен https.

Для получения дополнительной информации см. эту страницу

...