AbsoluteOrientationSensor
Ограниченная доступность
Эта функция не является Baseline, поскольку она не работает во всех широко используемых браузерах.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Интерфейс AbsoluteOrientationSensor из API датчиков описывает физическое ориентацию устройства по отношению к системе координат Земли.
Для использования этого датчика пользователь должен предоставить разрешение на доступ к датчикам устройства 'accelerometer', 'gyroscope', и 'magnetometer' через API разрешений.
Эта функция может быть заблокирована политикой разрешений Permissions Policy, установленной на вашем сервере.
Конструктор
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.");
}
});
Спецификации
Совместимость браузеров
| Рабочий стол | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 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