Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

XRSystem: Methode isSessionSupported()

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

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() von XRSystem gibt ein Promise zurück, das zu true aufgelöst wird, wenn das WebXR-Gerät des Benutzers den angegebenen WebXR-Sitzungsmodus unterstützt. Andernfalls wird das Promise zu false aufgelöst.

Wenn keine Geräte verfügbar sind oder der Browser keine Berechtigung zur Nutzung des XR-Geräts hat, wird das Promise mit einer entsprechenden DOMException zurückgewiesen.

Syntax

js
isSessionSupported(mode)

Parameter

mode

Ein String, der den WebXR-Sitzungsmodus angibt, dessen Unterstützung geprüft werden soll. Folgende Modi können geprüft werden:

  • immersive-ar
  • immersive-vr
  • inline

Rückgabewert

Ein Promise, das zu true aufgelöst wird, wenn der angegebene Sitzungsmodus unterstützt wird; andernfalls wird es zu false aufgelöst.

Ausnahmen

Statt Ausnahmen auszulösen, weist isSessionSupported() das zurückgegebene Promise zurück und übergibt dem Rejection-Handler eine DOMException, deren name einer der folgenden Strings ist:

SecurityError DOMException

Die Nutzung dieser Funktion wird durch eine xr-spatial-tracking-Permissions Policy blockiert.

Beispiele

In diesem Beispiel wird mit isSessionSupported() geprüft, ob das Gerät den VR-Modus unterstützt. Dazu wird geprüft, ob eine immersive-vr-Sitzung unterstützt wird. Falls ja, richten wir eine Schaltfläche mit der Beschriftung „Enter XR“ ein, die beim Anklicken die Methode onButtonClicked() aufruft, und aktivieren die Schaltfläche.

Wenn noch keine Sitzung läuft, fordern wir die VR-Sitzung an. Bei Erfolg richten wir die Sitzung in einer hier nicht gezeigten Methode namens onSessionStarted() ein. Wenn beim Anklicken der Schaltfläche bereits eine Sitzung läuft, rufen wir die Methode end() des xrSession-Objekts auf, um die WebXR-Sitzung zu beenden.

js
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

Spezifikation
WebXR Device API
# dom-xrsystem-issessionsupported

Browser-Kompatibilität