XRSession: visibilitychange 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, bevor Sie diese produktiv verwenden.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Das visibilitychange Ereignis wird an eine XRSession gesendet, um sie darüber zu informieren, wann sie sichtbar oder verborgen wird, oder wann sie sichtbar, aber derzeit nicht fokussiert ist. Beim Erhalt des Ereignisses können Sie den Wert der visibilityState Eigenschaft der Sitzung überprüfen, um den neuen Sichtbarkeitsstatus zu bestimmen.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignishandlereigenschaft.

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

onvisibilitychange = (event) => {};

Ereignistyp

Ereigniseigenschaften

Neben den unten aufgeführten Eigenschaften sind die Eigenschaften der übergeordneten Schnittstelle, Event, verfügbar.

session Nur lesbar

Die XRSession, auf die sich das Ereignis bezieht.

Beschreibung

Auslöser

Wird ausgelöst, wenn eine XRSession sichtbar oder verborgen wird, oder wenn sie sichtbar, aber derzeit nicht fokussiert ist.

Wenn die XRSession dieses Ereignis empfängt, wurde der Sichtbarkeitszustand bereits geändert.

Anwendungsfälle

Beim Erhalt des Ereignisses können Sie den Wert der visibilityState Eigenschaft der Sitzung überprüfen, um den neuen Sichtbarkeitsstatus zu bestimmen.

Beispiele

Dieses Beispiel zeigt, wie man auf ein visibilitychange-Ereignis in einer WebXR-Sitzung hört, indem addEventListener() verwendet wird, um mit dem Lauschen auf das Ereignis zu beginnen:

js
navigator.xr.requestSession("inline").then((xrSession) => {
  xrSession.addEventListener("visibilitychange", (e) => {
    switch (e.session.visibilityState) {
      case "visible":
      case "visible-blurred":
        mySessionVisible(true);
        break;
      case "hidden":
        mySessionVisible(false);
        break;
    }
  });
});

Wenn eine Änderung des Sichtbarkeitsstatus auftritt, wird das Ereignis empfangen und an eine Funktion mySessionVisible() weitergeleitet, mit einem booleschen Parameter, der angibt, ob die Sitzung derzeit dem Benutzer angezeigt wird oder nicht.

Sie können auch den Ereignishandler erstellen, indem Sie ihn der onvisibilitychange-Ereignishandlereigenschaft der XRSession zuordnen, wie folgt:

js
xrSession.onvisibilitychange = (e) => {
  /* event handled here */
};

Spezifikationen

Specification
WebXR Device API
# eventdef-xrsession-visibilitychange
WebXR Device API
# dom-xrsession-onvisibilitychange

Browser-Kompatibilität

BCD tables only load in the browser