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

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
sendFeatureReport
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.