Spec-Zone.ru › Web APIs

ДатчикОтносительнойОриентации

Ограниченная доступность

Эта функция не является базовой, поскольку она не работает во всех широко используемых браузерах.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Защищённый контекст: Данная функция доступна только в защищённых контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.

Интерфейс RelativeOrientationSensor из API датчиков описывает физическую ориентацию устройства без учёта координатной системы Земли.

Для использования этого датчика пользователь должен предоставить разрешение на доступ к 'accelerometer', и 'gyroscope' датчикам устройства через API разрешений. Кроме того, эта функция может быть заблокирована политикой разрешений Permissions Policy, заданной на вашем сервере.

EventTarget Sensor OrientationSensor RelativeOrientationSensor

Конструктор

RelativeOrientationSensor()

Создаёт новый объект RelativeOrientationSensor.

Свойства экземпляра

Нет специфических свойств; наследует свойства от своих предков OrientationSensor и Sensor.

Методы экземпляра

Нет специфических методов; наследует методы от своих предков OrientationSensor и Sensor.

События

Нет специфических событий; наследует события от своего предка Sensor.

Примеры

Базовый пример

Следующий пример, основанный на демонстрации ориентации телефона Intel, создаёт экземпляр RelativeOrientationSensor с частотой 60 раз в секунду.

Примечание: Демонстрация Intel, на которой основан этот пример, использует AbsoluteOrientationSensor. В каждом считывании она использует OrientationSensor.quaternion для поворота визуальной модели телефона.

const options = { frequency: 60, referenceFrame: "device" };
const sensor = new RelativeOrientationSensor(options);

sensor.addEventListener("reading", () => {
  // model is a Three.js object instantiated elsewhere.
  model.quaternion.fromArray(sensor.quaternion).inverse();
});
sensor.addEventListener("error", (error) => {
  if (event.error.name === "NotReadableError") {
    console.log("Sensor is not available.");
  }
});
sensor.start();

Пример с разрешениями

Для использования датчиков ориентации требуется запросить разрешения на доступ к нескольким датчикам устройства. Так как интерфейс Permissions использует промисы, удобным способом запроса разрешений является использование Promise.all.

const sensor = new RelativeOrientationSensor();
Promise.all([
  navigator.permissions.query({ name: "accelerometer" }),
  navigator.permissions.query({ name: "gyroscope" }),
]).then((results) => {
  if (results.every((result) => result.state === "granted")) {
    sensor.start();
    // ...
  } else {
    console.log("No permissions to use RelativeOrientationSensor.");
  }
});

Спецификации

Спецификация
Датчик ориентации
# relativeorientationsensor-interface

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
RelativeOrientationSensor 67 79 Нет 54 Нет 67 Нет 48 Нет 9.0 67
RelativeOrientationSensor 67 79 Нет 54 Нет 67 Нет 48 Нет 9.0 67

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/RelativeOrientationSensor

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API