VRDisplayCapabilities
已弃用:此功能不再推荐。虽然一些浏览器可能仍然支持它,但它可能已从相关的 Web 标准中删除,可能正在被删除,或者可能只为了兼容性而保留。避免使用它,并尽可能更新现有代码;请参阅本页面底部的兼容性表,以指导您的决定。请注意,此功能可能随时停止工作。
非标准:此功能是非标准的,并且不在标准化轨道上。请勿在面向 Web 的生产网站上使用它:它不会对所有用户都起作用。实现之间也可能存在很大的不兼容性,并且行为在将来可能会发生改变。
WebVR API 的 VRDisplayCapabilities
接口描述了 VRDisplay
的功能 - 它的功能可用于执行 VR 设备功能测试,例如,它是否可以返回位置信息。
注意:此接口是旧 WebVR API 的一部分。它已被 WebXR 设备 API 取代。
此接口可以通过 VRDisplay.capabilities
属性访问。
实例属性
VRDisplayCapabilities.canPresent
已弃用 只读 非标准-
返回一个布尔值,表示 VR 显示器是否能够呈现内容(例如,通过 HMD)。
VRDisplayCapabilities.hasExternalDisplay
已弃用 只读 非标准-
返回一个布尔值,表示 VR 显示器是否与设备的主显示器分离。
VRDisplayCapabilities.hasOrientation
已弃用 只读 非标准-
返回一个布尔值,表示 VR 显示器是否可以跟踪和返回方向信息。
VRDisplayCapabilities.hasPosition
已弃用 只读 非标准-
返回一个布尔值,表示 VR 显示器是否可以跟踪和返回位置信息。
VRDisplayCapabilities.maxLayers
已弃用 只读 非标准-
返回一个数字,表示 VR 显示器一次可以呈现的
VRLayerInit
的最大数量(例如,VRDisplay.requestPresent()
可以接受的数组的最大长度)。
示例
function reportDisplays() {
navigator.getVRDisplays().then((displays) => {
displays.forEach((display, i) => {
const cap = display.capabilities;
// cap is a VRDisplayCapabilities object
const listItem = document.createElement("li");
listItem.innerText = `
VR Display ID: ${display.displayId}
VR Display Name: ${display.displayName}
Display can present content: ${cap.canPresent}
Display is separate from the computer's main display: ${cap.hasExternalDisplay}
Display can return position info: ${cap.hasPosition}
Display can return orientation info: ${cap.hasOrientation}
Display max layers: ${cap.maxLayers}`;
listItem.insertBefore(
document.createElement("strong"),
listItem.firstChild,
).textContent = `Display ${i + 1}`;
list.appendChild(listItem);
});
});
}
规范
此接口是旧 WebVR API 的一部分,已被 WebXR 设备 API 取代。它不再是成为标准的轨道。
在所有浏览器都实现新的 WebXR API 之前,建议依赖框架,例如 A-Frame、Babylon.js 或 Three.js,或 polyfill,来开发可在所有浏览器中运行的 WebXR 应用程序 [1]。
浏览器兼容性
BCD 表仅在浏览器中加载