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-trackingPermissions 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> |
Browser-Kompatibilität
Loading…