HIDDevice: collections 属性

有限可用性

此功能不是基线功能,因为它在一些最广泛使用的浏览器中无法正常工作。

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

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

HIDDevice 接口的 collections 只读属性返回一个报表格式数组

一个报表格式数组。每个条目包含以下内容

usagePage

表示与该集合关联的 HID 使用的用法页面组件的整数。顶级集合的用法用于识别设备类型。

标准 HID 用法值可以在 HID 用法表 文档中找到

usage

表示与该集合关联的 HID 使用的用法 ID 组件的整数。

type

一个 8 位值,表示集合类型,它描述了分组项之间的不同关系。以下列出的其中之一:

0x00

物理(轴组)

0x01

应用程序(鼠标、键盘)

0x02

逻辑(相互关联的数据)

0x03

报表

0x04

命名数组

0x05

用法切换

0x06

用法修改

0x070x7F

保留供将来使用

0x800xFF

供应商定义

有关这些类型的更多信息可以在 设备类定义 文档中找到。

children

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

inputReports

inputReport 项数组,代表该集合中描述的各个输入报表。

outputReports

outputReport 项数组,代表该集合中描述的各个输出报表。

featureReports

featureReport 项数组,代表该集合中描述的各个特征报表。

示例

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

js
for (const collection of device.collections) {
  // A HID collection includes usage, usage page, reports, and subcollections.
  console.log(`Usage: ${collection.usage}`);
  console.log(`Usage page: ${collection.usagePage}`);

  for (const inputReport of collection.inputReports) {
    console.log(`Input report: ${inputReport.reportId}`);
    // Loop through inputReport.items
  }

  for (const outputReport of collection.outputReports) {
    console.log(`Output report: ${outputReport.reportId}`);
    // Loop through outputReport.items
  }

  for (const featureReport of collection.featureReports) {
    console.log(`Feature report: ${featureReport.reportId}`);
    // Loop through featureReport.items
  }

  // Loop through subcollections with collection.children
}

规范

规范
WebHID API
# dom-hiddevice-collections

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。