HIDDevice:sendReport() 方法

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 接口的 sendReport() 方法发送 HID 设备的输出报告。

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

语法

js
sendReport(reportId, data)

参数

reportId

一个 8 位的报告 ID。如果设备没有报告 ID,则返回 0

data

ArrayBufferTypedArrayDataView 形式的字节序列。

返回值

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

异常

NotAllowedError DOMException

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

示例

以下示例演示如何使 Joy-Con 设备振动。你可以在文章连接到不常见的 HID 设备中看到更多示例和实时演示。

js
// 首先,发送一条命令以启用振动。
// 魔数序列来自 https://github.com/mzyy94/joycon-toolweb
const enableVibrationData = [1, 0, 1, 64, 64, 0, 1, 64, 64, 0x48, 0x01];
await device.sendReport(0x01, new Uint8Array(enableVibrationData));

// 然后,发送一条命令以使 Joy-Con 设备震动。
// 实际的字节序列在示例中提供。
const rumbleData = [
  /* … */
];
await device.sendReport(0x10, new Uint8Array(rumbleData));

规范

Specification
WebHID API
# dom-hiddevice-sendreport

浏览器兼容性

BCD tables only load in the browser