Spec-Zone.ru › Web APIs

XRSystem: событие devicechange

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

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

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

Экспериментальная функция: Это экспериментальная технология
Перед использованием в продакшене внимательно изучите таблицу совместимости с браузерами.

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

Событие devicechange срабатывает на объекте XRSystem, когда изменяется доступность устройств XR; например, когда гарнитура виртуальной реальности или очки дополненной реальности подключены или отключены. Это общее Event без дополнительных свойств.

Примечание: Не путать с событием MediaDevices devicechange.

Синтаксис

Используйте имя события в методах, таких как addEventListener(), или задайте обработчик событий.

addEventListener("devicechange", (event) => {});

ondevicechange = (event) => {};

Если использование WebXR было заблокировано политикой xr-spatial-tracking разрешений, события devicechange не будут срабатывать.

Тип события

Общее Event без дополнительных свойств.

Описание

Триггер

Срабатывает при изменении доступности устройств XR. Например, когда гарнитура VR или очки AR подключаются или отключаются.

Сценарии использования

Это событие можно использовать для мониторинга доступности устройства, совместимого с WebXR, чтобы включить элемент пользовательского интерфейса, который пользователь может использовать для активации интерактивного режима. Пример показан ниже.

Примеры

В приведенном примере событие devicechange обрабатывается путем переключения доступности кнопки "Войти в XR" в зависимости от того, доступны ли в данный момент какие-либо устройства.

if (navigator.xr) {
  navigator.xr.addEventListener("devicechange", (event) => {
    navigator.xr.isSessionSupported("immersive-vr").then((immersiveOK) => {
      enableXRButton.disabled = !immersiveOK;
    });
  });
}

При получении события devicechange обработчик вызывает метод XR isSessionSupported(), чтобы узнать, доступно ли устройство, способное обрабатывать интерактивные VR-презентации. Если да, то кнопка для входа в XR режим активируется; в противном случае она деактивируется.

Также можно использовать свойство обработчика событий ondevicechange для задания единого обработчика для событий devicechange:

if (navigator.xr) {
  navigator.xr.ondevicechange = (event) => {
    // …
  };
}

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

Спецификация
API устройств WebXR
# eventdef-xrsystem-devicechange
API устройств WebXR
# dom-xrsystem-ondevicechange

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
devicechange_event 79 79 Нет 66 Нет 79 Нет 57 Нет 12.0 Нет

© 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/XRSystem/devicechange_event

Spec-Zone.ru

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