Spec-Zone.ru › Web APIs

AbsoluteOrientationSensor

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

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

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

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

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

Для использования этого датчика пользователь должен предоставить разрешение на доступ к датчикам устройства 'accelerometer', 'gyroscope', и 'magnetometer' через API разрешений.

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

EventTarget Sensor OrientationSensor AbsoluteOrientationSensor

Конструктор

AbsoluteOrientationSensor()

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

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

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

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

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

События

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

Примеры

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

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

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

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

Пример разрешений

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

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

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

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

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

Рабочий стол Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
AbsoluteOrientationSensor 67 79 Нет 54 Нет 67 Нет 48 Нет 9.0 67
AbsoluteOrientationSensor 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/AbsoluteOrientationSensor

Spec-Zone.ru

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