XRSession: inputsourceschange-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.

Das inputsourceschange-Ereignis wird an eine XRSession gesendet, wenn sich die verfügbare Menge der WebXR-Eingabegeräte ändert.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignis-Handler-Eigenschaft.

js
addEventListener("inputsourceschange", (event) => {});

oninputsourceschange = (event) => {};

Ereignistyp

Ereigniseigenschaften

Zusätzlich zu den unten aufgeführten Eigenschaften sind Eigenschaften von der übergeordneten Schnittstelle, Event, verfügbar.

added Schreibgeschützt

Ein Array von null oder mehr XRInputSource-Objekten, von denen jedes ein kürzlich verbundenes oder aktiviertes Eingabegerät darstellt.

removed Schreibgeschützt

Ein Array von null oder mehr XRInputSource-Objekten, die die kürzlich getrennten oder deaktivierten Eingabegeräte repräsentieren.

session Schreibgeschützt

Die XRSession, an die sich dieses Eingabequellen-Änderungsereignis richtet.

Beschreibung

Auslöser

Ausgelöst, wenn sich die Menge der verfügbaren WebXR-Eingabegeräte ändert.

Anwendungsfälle

Sie können dieses Ereignis verwenden, um neu verfügbare Geräte zu erkennen oder wenn Geräte nicht mehr verfügbar sind.

Beispiele

Das folgende Beispiel zeigt, wie man einen Ereignis-Handler einrichtet, der inputsourceschange-Ereignisse verwendet, um neu verfügbare Zeigegeräte zu erkennen und deren Modelle zu laden, um sie im nächsten Animationsrahmen anzuzeigen.

js
xrSession.addEventListener("inputsourceschange", onInputSourcesChange);

function onInputSourcesChange(event) {
  for (const input of event.added) {
    if (input.targetRayMode === "tracked-pointer") {
      loadControllerMesh(input);
    }
  }
}

Sie können auch einen Handler für inputsourceschange-Ereignisse hinzufügen, indem Sie den oninputsourceschange-Ereignis-Handler setzen:

js
xrSession.oninputsourceschange = onInputSourcesChange;

Spezifikationen

Specification
WebXR Device API
# eventdef-xrsession-inputsourceschange
WebXR Device API
# dom-xrsession-oninputsourceschange

Browser-Kompatibilität

BCD tables only load in the browser