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 Versprechen zurück, das auf true
aufgelöst wird, wenn der angegebene WebXR-Sitzungs-Modus vom WebXR-Gerät des Benutzers unterstützt wird. Andernfalls wird das Versprechen 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 Versprechen 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 Versprechen auf false
aufgelöst.
Ausnahmen
Anstatt echte Ausnahmen auszulösen, lehnt isSessionSupported()
das zurückgegebene Versprechen ab und übergibt dem Ablehnungs-Handler eine DOMException
, deren name
einer der folgenden Strings ist.
SecurityError
-
Die Nutzung dieses Features wird durch eine
xr-spatial-tracking
Permissions Policy blockiert.
Beispiele
In diesem Beispiel sehen wir, wie isSessionSupported()
verwendet wird, um zu erkennen, ob das Gerät den VR-Modus unterstützt, indem überprüft wird, ob eine immersive-vr
-Sitzung unterstützt wird. Wenn dies der Fall ist, richten wir eine Schaltfläche ein, die "Enter XR" anzeigt, um eine Methode onButtonClicked()
aufzurufen, und aktivieren die Schaltfläche.
Wenn noch keine Sitzung läuft, fordern wir die VR-Sitzung an und richten sie, wenn erfolgreich, in einer Methode namens onSessionStarted()
ein, die hier nicht gezeigt wird. Falls bereits eine Sitzung läuft, wenn die Schaltfläche geklickt wird, rufen wir die end()
-Methode 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 |
Browser-Kompatibilität
BCD tables only load in the browser