HIDDevice:collections 属性

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

安全上下文: 此项功能仅在一些支持的浏览器安全上下文(HTTPS)中可用。

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

备注: 此特性在 Web Worker(不包括共享 Web Worker)中可用。

HIDDevice 接口的 collections 只读属性返回报告格式的数组。

一个报告格式数组,每个条目包含以下内容:

usagePage

一个整数,表示请求设备的 HID 用途中的用途页面组件。顶级集合的用途用于识别设备类型。

可以在 HID 使用表文档中找到标准 HID 用途值。

usage

一个整数,表示此集合关联的 HID 用途中的用途 ID 组件。

type

一个 8 位值,表示集合类型,描述分组条目之间的不同关系。为以下值之一:

0x00

物理(Physical)(轴组)

0x01

应用(Application)(鼠标、键盘)

0x02

逻辑(Logical)(相关数据)

0x03

报告(Report)

0x04

具名数组

0x05

用途开关

0x06

修改后的用途

0x070x7F

保留供未来使用

0x800xFF

供应商定义

有关这些类型的更多信息,请参阅设备类定义文档。

children

一个子集合数组,采用与顶级集合相同的格式。

inputReports

一个 inputReport 项数组,表示此集合中描述的各个输入报告。

outputReports

一个 outputReport 项数组,表示此集合中描述的各个输出报告。

featureReports

一个 featureReport 项数组,表示此集合中描述的各个特征报告。

示例

以下示例演示如何在返回 collections 属性后访问各个元素。你可以在文章连接到不常见的 HID 设备中看到更多示例和实时演示。

js
for (const collection of device.collections) {
  // 一个 HID 集合包括用途、用途页面、报告和子集合。
  console.log(`用途:${collection.usage}`);
  console.log(`用途页面:${collection.usagePage}`);

  for (const inputReport of collection.inputReports) {
    console.log(`输入报告:${inputReport.reportId}`);
    // 遍历 inputReport.items
  }

  for (const outputReport of collection.outputReports) {
    console.log(`输出报告:${outputReport.reportId}`);
    // 遍历 outputReport.items
  }

  for (const featureReport of collection.featureReports) {
    console.log(`特征报告:${featureReport.reportId}`);
    // 遍历 featureReport.items
  }

  // 使用 collection.children 遍历子集合
}

规范

Specification
WebHID API
# dom-hiddevice-collections

浏览器兼容性

BCD tables only load in the browser