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, wenn 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 Event-Handler-Eigenschaft.
addEventListener("devicechange", (event) => { })
ondevicechange = (event) => { }
Wenn die Nutzung von WebXR durch eine xr-spatial-tracking
Berechtigungsrichtlinie blockiert wurde, werden devicechange
Ereignisse nicht ausgelöst.
Ereignistyp
Ein generisches Event
ohne zusätzliche Eigenschaften.
Beschreibung
Auslöser
Wird ausgelöst, wenn sich die Verfügbarkeit von immersiven XR-Geräten ändert. Beispielsweise, wenn ein VR-Headset oder AR-Brillen angeschlossen oder getrennt werden.
Anwendungsfälle
Sie können dieses Ereignis nutzen, um beispielsweise die Verfügbarkeit eines mit WebXR kompatiblen Geräts zu überwachen, damit Sie ein UI-Element aktivieren können, mit dem der Benutzer den immersiven Modus aktivieren kann. Dies wird im Beispiel unten gezeigt.
Beispiele
Das hier gezeigte Beispiel behandelt das devicechange
Ereignis, indem es die Verfügbarkeit der "Enter XR"-Schaltfläche basierend darauf umschaltet, ob momentan immersive Geräte 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 verarbeiten kann. Wenn ja, wird die Schaltfläche zum Betreten des XR-Modus aktiviert; andernfalls wird sie deaktiviert.
Sie können auch die ondevicechange
Event-Handler-Eigenschaft verwenden, um einen einzelnen 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 |