XRSessionEvent - 表示 XRSession 状态更改的事件

XRSessionEventWebXR 设备 API 的接口,表示 XRSession 状态更改的事件。这些事件发生在会话结束或其上下文的可见性更改时。

构造函数

XRSessionEvent()

创建并返回一个新的 XRSessionEvent 对象,该对象使用指定的 XRSessionEventInit 对象的值(如果有)进行配置。

属性

除了从其父接口 Event 继承的属性之外, XRSessionEvent 还包含以下属性:

session 只读

事件引用的 XRSession

方法

虽然 XRSessionEvent 没有自定义方法,但它从其父接口 Event 继承了方法。

会话事件类型

以下事件是使用 XRSessionEvent 接口表示的,并且是其 type 属性的允许值。

end

在应用程序或 用户代理 终止后,在会话结束时触发该会话。

visibilitychange

每当其可见性状态更改时,在会话上触发。

实例

本实例创建一个侦听器,该侦听器监视会话的可见性状态是否更改。它通过调用带有布尔值参数的 mySessionVisible() 函数来作出反应,该布尔值指示会话是否可见;例如,此功能可能会启动或重新配置处理场景渲染的工作线程。

xrSession.addEventListener("visibilitystate", e => {
  switch(e.session.visibilitystate) {
    case "visible":
    case "visible-blurred":
      mySessionVisible(true);
      break;
    case "hidden":
      mySessionVisible(false);
      break;
  }
});

规范

规范 状态 备注
WebXR Device API
XRSessionEvent 的定义
工作草案 初始定义。

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持7979 不支持 不支持 不支持 不支持
XRSessionEvent() 构造函数7979 不支持 不支持 不支持 不支持
session7979 不支持 不支持 不支持 不支持

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 不支持79 未知 不支持 未知 不支持 不支持
XRSessionEvent() 构造函数 不支持79 未知 不支持 未知 不支持 不支持
session 不支持79 未知 不支持 未知 不支持 不支持