XRSession: visibilityState 属性

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

XRSession 接口的 **visibilityState** 属性是只读的,它是一个字符串,表示 WebXR 内容当前是否对用户可见,如果可见,是否是主要焦点。

每次可见状态发生变化时,都会在 XRSession 对象上触发一个 visibilitychange 事件。

一个字符串,指示 XR 内容是否对用户可见,如果可见,是否是当前的主要焦点。

visibilityState 的可能值为:

hidden

XRSession 生成的虚拟场景当前对用户不可见,因此直到 visibilityState 更改之前,其 requestAnimationFrame() 回调函数不会被执行。该会话的输入控制器不会被处理。

visible

XRSession 渲染的虚拟场景当前对用户可见,并且是用户注意力的主要焦点。为此,该会话的 requestAnimationFrame() 回调函数将以 XR 设备的本机刷新率进行处理,输入控制器也将正常处理。

visible-blurred

尽管由 XRSession 渲染的虚拟场景当前可能对用户可见,但它并不是用户当前的主要焦点;会话也可能根本不可见。为了优化资源利用,用户代理可能会以节流速率处理该会话的 requestAnimationFrame() 回调函数。该会话的输入控制器不会被处理。

用法说明

需要注意的是,由于沉浸式 WebXR 会话可能使用与运行它的 HTML 文档不同的显示器(例如,在头显上显示时),因此会话的 visibilityState 的值不一定与其所属的documentvisibilityState 相同。例如,如果查看者正在使用连接到计算机的头显,并且沉浸式场景被配置 UI 遮挡,用户可以从头显后面窥视,仍然可以在他们计算机的显示器上看到文档本身。

规范

规范
WebXR Device API
# dom-xrsession-visibilitystate

浏览器兼容性

另见