XRSession: inputsourceschange 事件

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

安全上下文: 此功能仅在 安全上下文(HTTPS)中可用,在某些或所有 支持的浏览器 中可用。

当可用 WebXR 输入设备集发生变化时,inputsourceschange 事件将发送到 XRSession

语法

在像 addEventListener() 这样的方法中使用事件名称,或者设置事件处理程序属性。

js
addEventListener("inputsourceschange", (event) => {});

oninputsourceschange = (event) => {};

事件类型

事件属性

除了下面列出的属性外,父接口 Event 中的属性也可用。

added 只读

零个或多个 XRInputSource 对象的数组,每个对象代表最近连接或启用的输入设备。

removed 只读

代表最近断开连接或禁用的输入设备的零个或多个 XRInputSource 对象的数组。

session 只读

将此输入源更改事件定向到的 XRSession

描述

触发器

当可用 WebXR 输入设备集发生变化时触发。

用例

您可以使用此事件来检测新可用设备或设备何时变得不可用。

示例

以下示例展示了如何设置事件处理程序,该处理程序使用 `inputsourceschange` 事件来检测新可用的指向设备,并在准备在下一个动画帧中显示它们之前加载它们的模型。

js
xrSession.addEventListener("inputsourceschange", onInputSourcesChange);

function onInputSourcesChange(event) {
  for (const input of event.added) {
    if (input.targetRayMode === "tracked-pointer") {
      loadControllerMesh(input);
    }
  }
}

您还可以通过设置 `oninputsourceschange` 事件处理程序来添加 `inputsourceschange` 事件的处理程序。

js
xrSession.oninputsourceschange = onInputSourcesChange;

规范

规范
WebXR 设备 API
# eventdef-xrsession-inputsourceschange
WebXR 设备 API
# dom-xrsession-oninputsourceschange

浏览器兼容性

BCD 表格仅在浏览器中加载