XRSystem: devicechange Ereignis
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.
Ein devicechange
Ereignis wird auf einem XRSystem
Objekt ausgelöst, wann immer sich die Verfügbarkeit von immersiven XR-Geräten geändert hat. Zum Beispiel, wenn ein VR-Headset oder AR-Brillen angeschlossen oder getrennt wurden. Es handelt sich um ein generisches Event
ohne zusätzliche Eigenschaften.
Hinweis:
Nicht zu verwechseln mit dem MediaDevices
devicechange
Ereignis.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener()
oder setzen Sie eine Ereignishandler-Eigenschaft.
addEventListener("devicechange", (event) => {});
ondevicechange = (event) => {};
Wenn die Nutzung von WebXR durch eine xr-spatial-tracking
Permissions Policy blockiert wurde, werden devicechange
Ereignisse nicht ausgelöst.
Ereignistyp
Ein generisches Event
ohne zusätzliche Eigenschaften.
Beschreibung
Auslöser
Ausgelöst, wann immer sich die Verfügbarkeit von immersiven XR-Geräten geändert hat. Zum Beispiel, wenn ein VR-Headset oder AR-Brillen angeschlossen oder getrennt wurden.
Anwendungsfälle
Sie können dieses Ereignis verwenden, um zum Beispiel die Verfügbarkeit eines WebXR-kompatiblen Geräts zu überwachen, damit Sie ein UI-Element aktivieren können, das der Benutzer zur Aktivierung des immersiven Modus verwenden kann. Dies wird im Beispiel unten gezeigt.
Beispiele
Im hier gezeigten Beispiel wird das devicechange
Ereignis behandelt, indem die Verfügbarkeit der Schaltfläche "Enter XR" basierend darauf umgeschaltet wird, ob immersive Geräte derzeit verfügbar sind oder nicht.
if (navigator.xr) {
navigator.xr.addEventListener("devicechange", (event) => {
navigator.xr.isSessionSupported("immersive-vr").then((immersiveOK) => {
enableXRButton.disabled = !immersiveOK;
});
});
}
Wenn devicechange
empfangen wird, ruft der in diesem Code eingerichtete Handler die XR
Methode isSessionSupported()
auf, um herauszufinden, ob ein Gerät verfügbar ist, das immersive VR-Präsentationen handhaben kann. Wenn ja, wird die Schaltfläche zum Betreten des XR-Modus aktiviert; andernfalls wird sie deaktiviert.
Sie können auch die ondevicechange
Ereignishandler-Eigenschaft verwenden, um einen einzigen Handler für devicechange
Ereignisse festzulegen:
if (navigator.xr) {
navigator.xr.ondevicechange = (event) => {
// …
};
}
Spezifikationen
Specification |
---|
WebXR Device API # eventdef-xrsystem-devicechange |
WebXR Device API # dom-xrsystem-ondevicechange |