Spec-Zone.ru › Web APIs

XRSystem: метод isSessionSupported()

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

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

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

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

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

Метод XRSystem isSessionSupported() возвращает промис, который выполняется успешно с результатом true, если указанный режим сессии WebXR поддерживается устройством WebXR пользователя. В противном случае промис выполняется успешно с результатом false.

Если устройства недоступны или браузер не имеет разрешения на использование устройства XR, промис отклоняется с соответствующей ошибкой DOMException.

Синтаксис

isSessionSupported(mode)

Параметры

mode

Строка String, указывающая режим сессии WebXR, для которого необходимо проверить поддержку. Возможные режимы:

  • immersive-ar Экспериментально
  • immersive-vr
  • inline

Возвращаемое значение

Промис Promise, который выполняется успешно с результатом true, если указанный режим сессии поддерживается; в противном случае промис выполняется успешно с результатом false.

Исключения

Вместо бросания исключений, isSessionSupported() отклоняет возвращенный промис, передавая обработчику отклонения объект DOMException, значение свойства name которого является одной из следующих строк.

SecurityError

Использование этой функции заблокировано политикой политики разрешений.

Примеры

В этом примере мы используем isSessionSupported() для проверки поддержки VR-режима на устройстве, проверяя поддержку сессии immersive-vr. Если она поддерживается, мы создаем кнопку с текстом "Ввести XR", вызываем метод onButtonClicked(), и активируем кнопку.

Если сессия еще не запущена, мы запрашиваем VR-сессию. При успешном выполнении мы настраиваем сессию в методе onSessionStarted(), который не показан. Если сессия уже запущена при нажатии на кнопку, мы вызываем метод end() объекта xrSession для завершения сессии WebXR.

if (navigator.xr) {
  navigator.xr.isSessionSupported("immersive-vr").then((isSupported) => {
    if (isSupported) {
      userButton.addEventListener("click", onButtonClicked);
      userButton.textContent = "Enter XR";
      userButton.disabled = false;
    }
  });
}

function onButtonClicked() {
  if (!xrSession) {
    navigator.xr.requestSession("immersive-vr").then((session) => {
      xrSession = session;
      // onSessionStarted() not shown for reasons of brevity and clarity.
      onSessionStarted(xrSession);
    });
  } else {
    // Button is a toggle button.
    xrSession.end();
  }
}

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

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

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
isSessionSupported 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/isSessionSupported

Spec-Zone.ru

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