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 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 visibilitychange-Ereignis wird an eine XRSession gesendet, um sie darüber zu informieren, wenn sie sichtbar oder verborgen wird oder wenn sie sichtbar, aber nicht aktuell fokussiert ist. Beim Empfang 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 Ereignis-Handler-Eigenschaft.

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

onvisibilitychange = (event) => { }

Ereignistyp

Ereigniseigenschaften

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

session Schreibgeschützt

Die XRSession, auf die sich das Ereignis bezieht.

Beschreibung

Auslöser

Ausgelöst, wenn eine XRSession sichtbar oder verborgen wird oder wenn sie sichtbar, aber nicht aktuell fokussiert ist.

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

Anwendungsfälle

Nach dem Empfang des Ereignisses können Sie den Wert der visibilityState-Eigenschaft der Sitzung überprüfen, um den neuen Sichtbarkeitsstatus zu bestimmen.

Beispiele

Dieses Beispiel demonstriert, wie man auf ein visibilitychange-Ereignis auf einer WebXR-Sitzung hört, indem addEventListener() verwendet wird, um mit dem Zuhören für 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 Sichtbarkeitszustands 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 den Ereignis-Handler auch erstellen, indem Sie ihn der onvisibilitychange-Ereignis-Handler-Eigenschaft der XRSession zuweisen, 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