Есть ли какие-либо ограничения на событие «onDeviceMotion» на iOS? - PullRequest
0 голосов
/ 02 мая 2019

У меня проблема с доступом к событию onDeviceMotion на iOS. Работает на Android.

Я следовал учебному пособию, и код отлично работает на моем устройстве iOS, но когда я копирую / вставляю тот же самый код и запускаю его с моего локального хоста на моем устройстве iOS, событие onDeviceMotion не вызывается. Один и тот же код прекрасно работает на моем Android-устройстве в Chrome и Firefox. Так что вместо проблемы с кодом я думаю, что это ограничение Apple.

Я на iOS 12 и у меня включен датчик движения в Safari.

Существуют ли какие-либо ограничения, которые я должен знать о событиях движения на iOS? Такие как необходимые https или CORS? Мой сервер написан на Node.JS.

Ниже приведен код, о котором я говорю.

window.addEventListener('devicemotion', onDeviceMotion, true);

function onDeviceMotion(event) {
    let x = event.accelerationIncludingGravity.x;
    let y = event.accelerationIncludingGravity.y;
    let z = event.accelerationIncludingGravity.z;
}

Спасибо!

1 Ответ

0 голосов
/ 03 мая 2019

Проблема в том, что Safari ограничивает некоторые события, особенно события движения, от запуска на незащищенных веб-сайтах по HTTP. Вы должны настроить и включить HTTPS, после чего события будут вызваны.

Node.js

const privateKey = fs.readFileSync( 'keys/server.key' );
const certificate = fs.readFileSync( 'keys/server.crt' );
https.createServer({
    key: privateKey,
    cert: certificate
}, app).listen(8080);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...