XRSystem: isSessionSupported()-Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die Methode isSessionSupported()
des XRSystem
gibt ein Promise
zurück, das auf true
aufgelöst wird, wenn der spezifizierte WebXR-Sitzungsmodus vom WebXR-Gerät des Nutzers unterstützt wird. Andernfalls wird das Promise
mit false
aufgelöst.
Wenn keine Geräte verfügbar sind oder der Browser keine Berechtigung hat, das XR-Gerät zu verwenden, wird das Promise
mit einer entsprechenden DOMException
abgelehnt.
Syntax
isSessionSupported(mode)
Parameter
Rückgabewert
Ein Promise
, das auf true
aufgelöst wird, wenn der angegebene Sitzungsmodus unterstützt wird; andernfalls wird das Promise
mit false
aufgelöst.
Ausnahmen
Anstatt echte Ausnahmen auszulösen, lehnt isSessionSupported()
das zurückgegebene Promise
ab und übergibt dem Ablehnungs-Handler eine DOMException
, deren name
einer der folgenden Zeichenfolgen ist:
SecurityError
-
Die Nutzung dieses Features wird durch eine
xr-spatial-tracking
Permissions Policy blockiert.
Beispiele
In diesem Beispiel wird isSessionSupported()
verwendet, um zu erkennen, ob das Gerät den VR-Modus unterstützt, indem überprüft wird, ob eine immersive-vr
-Sitzung unterstützt wird. Falls dies der Fall ist, richten wir einen Button ein, der "Enter XR" liest, eine Methode onButtonClicked()
aufruft und den Button aktiviert.
Wenn noch keine Sitzung läuft, fordern wir die VR-Sitzung an und, im Erfolgsfall, richten wir die Sitzung in einer Methode namens onSessionStarted()
ein, die hier nicht gezeigt wird. Wenn bereits eine Sitzung läuft, wenn der Button gedrückt wird, rufen wir die Methode end()
des xrSession
-Objekts auf, um die WebXR-Sitzung zu beenden.
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();
}
}
Spezifikationen
Specification |
---|
WebXR Device API # dom-xrsystem-issessionsupported |