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: devicechange-Ereignis

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.

Ein devicechange-Ereignis wird auf einem XRSystem-Objekt ausgelöst, wenn sich die Verfügbarkeit immersiver XR-Geräte ändert – beispielsweise, wenn ein VR-Headset oder eine AR-Brille verbunden oder getrennt wird. Es handelt sich um ein generisches Event ohne zusätzliche Eigenschaften.

Hinweis: Nicht zu verwechseln mit dem devicechange-Ereignis von MediaDevices.

Syntax

Verwenden Sie den Ereignisnamen in addEventListener():

js
addEventListener("devicechange", (event) => { })

Alternativ können Sie der Event-Handler-Eigenschaft der Schnittstelle einen Handler zuweisen:

js
ondevicechange = (event) => { }

Wenn die Verwendung von WebXR durch eine xr-spatial-tracking-Permissions Policy blockiert wurde, werden keine devicechange-Ereignisse ausgelöst.

Ereignistyp

Ein generisches Event ohne zusätzliche Eigenschaften.

Beschreibung

Auslöser

Das Ereignis wird ausgelöst, wenn sich die Verfügbarkeit immersiver XR-Geräte ändert – beispielsweise, wenn ein VR-Headset oder eine AR-Brille verbunden oder getrennt wird.

Anwendungsfälle

Mit diesem Ereignis können Sie beispielsweise überwachen, ob ein WebXR-kompatibles Gerät verfügbar ist. So können Sie ein UI-Element aktivieren, mit dem Benutzer den immersiven Modus starten können. Das Beispiel unten zeigt, wie das funktioniert.

Beispiele

Das folgende Beispiel verarbeitet das devicechange-Ereignis, indem es die Verfügbarkeit der Schaltfläche „Enter XR“ davon abhängig macht, ob derzeit immersive Geräte verfügbar sind.

js
if (navigator.xr) {
  navigator.xr.addEventListener("devicechange", (event) => {
    navigator.xr.isSessionSupported("immersive-vr").then((immersiveOK) => {
      enableXRButton.disabled = !immersiveOK;
    });
  });
}

Wenn ein devicechange-Ereignis eintritt, ruft der hier eingerichtete Handler die XR-Methode isSessionSupported() auf, um zu prüfen, ob ein Gerät verfügbar ist, das immersive VR-Darstellungen unterstützt. Falls ja, wird die Schaltfläche zum Starten des XR-Modus aktiviert; andernfalls wird sie deaktiviert.

Sie können auch über die Event-Handler-Eigenschaft ondevicechange einen einzelnen Handler für devicechange-Ereignisse festlegen. Beachten Sie jedoch, dass dadurch gegebenenfalls andere über ondevicechange hinzugefügte Ereignis-Listener ersetzt werden:

js
if (navigator.xr) {
  navigator.xr.ondevicechange = (event) => {
    // …
  };
}

Spezifikationen

Spezifikation
WebXR Device API
# eventdef-xrsystem-devicechange
WebXR Device API
# dom-xrsystem-ondevicechange

Browser-Kompatibilität