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> |
Browser-Kompatibilität
Loading…