XRSystem: метод isSessionSupported()
Ограниченная доступность
Эта функция не является базовой, так как она не работает во всех широко используемых браузерах.
Экспериментальная функция: Это экспериментальная технология.
Перед использованием в продакшене внимательно проверьте таблицу совместимости браузеров в разделе Совместимость с браузерами.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Метод XRSystem isSessionSupported() возвращает промис, который выполняется успешно с результатом true, если указанный режим сессии WebXR поддерживается устройством WebXR пользователя. В противном случае промис выполняется успешно с результатом false.
Если устройства недоступны или браузер не имеет разрешения на использование устройства XR, промис отклоняется с соответствующей ошибкой DOMException.
Синтаксис
isSessionSupported(mode)
Параметры
Возвращаемое значение
Промис 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();
}
}
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 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