Web/API/XRSession/visibilitychange event

From Get docs

Secure contextThis feature is available only in secure contexts (HTTPS), in some or all supporting browsers.


The visibilitychange event is sent to an XRSession to inform it when it becomes visible or hidden, or when it becomes visible but not currently focused. Upon receiving the event, you can check the value of the session's visibilityState property to determine the new visibility state.

Bubbles Yes
Cancelable No
Interface XRSessionEvent
Event handler property onvisibilitychange

When the XRSession receives this event, the visibility state has already been changed.

Examples

This example demonstrates how to listen for a visibilitychange event on a WebXR session, using addEventListener() to begin listening for the event:

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

When a visibility state change occurs, the event is received and dispatched to a function mySessionVisible(), with a Boolean parameter indicating whether or not the session is presently being displayed to the user.

You can also create the event handler by assigning it to the XRSession's onvisibilitychange event handler property, like this:

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

Specifications

Specification Status Comment
WebXR Device APIThe definition of 'visibilitychange event' in that specification. Working Draft Initial definition.

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
visibilitychange event Chrome

Full support 79

Edge

Full support 79

Firefox

No support No

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

Full support 79

Firefox Android

No support No

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

Full support 11.2

Legend

Full support  
Full support
No support  
No support