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 an 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-Brille verbunden oder getrennt wurde. 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 legen Sie eine Event-Handler-Eigenschaft fest.
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
Wird ausgelöst, wenn sich die Verfügbarkeit von immersiven XR-Geräten geändert hat. Zum Beispiel, wenn ein VR-Headset oder AR-Brille verbunden oder getrennt wurde.
Anwendungsfälle
Sie können dieses Ereignis nutzen, um beispielsweise die Verfügbarkeit eines WebXR-kompatiblen Geräts zu überwachen, damit Sie ein UI-Element aktivieren können, das der Benutzer verwenden kann, um den immersiven Modus zu aktivieren. Dies wird im Beispiel unten gezeigt.
Beispiele
Das hier gezeigte Beispiel behandelt das devicechange
-Ereignis, indem es basierend auf der Verfügbarkeit von immersiven Geräten die Verfügbarkeit der "Enter XR"-Schaltfläche umschaltet.
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 festzustellen, ob ein Gerät verfügbar ist, das immersive VR-Präsentationen handhaben kann. Wenn ja, wird der Button, um den XR-Modus zu betreten, aktiviert; andernfalls wird er deaktiviert.
Sie können auch die ondevicechange
-Event-Handler-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 |
Browser-Kompatibilität
BCD tables only load in the browser