HIDDevice:sendFeatureReport() 方法

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 接口的 sendFeatureReport() 方法用于 HID 设备发送功能报告。功能报告是 HID 设备和应用程序之间交换非标准化 HID 数据的一种方式。

可以从 HIDDevice.collections 中检索此设备支持的每种报告格式的 reportId

语法

js
sendFeatureReport(reportId, data)

参数

reportId

一个 8 位的报告 ID。如果设备不使用报告 ID,则返回 0

data

ArrayBufferTypedArrayDataView 形式的字节序列。

返回值

一个 Promise,会在报告发送时兑现为 undefined

异常

NotAllowedError DOMException

如果因任何原因尝试发送报告失败,则抛出异常。

示例

以下示例演示使用 sendFeatureReport() 让设备闪烁。你可以在文章连接到不常见的 HID 设备中看到更多示例和实时演示。

js
const reportId = 1;
for (let i = 0; i < 10; i++) {
  // 关闭
  await device.sendFeatureReport(reportId, Uint32Array.from([0, 0]));
  await new Promise((resolve) => setTimeout(resolve, 100));
  // 打开
  await device.sendFeatureReport(reportId, Uint32Array.from([512, 0]));
  await new Promise((resolve) => setTimeout(resolve, 100));
}

规范

Specification
WebHID API
# dom-hiddevice-sendfeaturereport

浏览器兼容性

BCD tables only load in the browser