HIDDevice:sendReport() 方法

有限可用性

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

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

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

sendReport()HIDDevice 接口的方法,用于向 HID 设备发送输出报告。

此设备支持的每个报告格式的 reportId 都可以从 HIDDevice.collections 中获取。

语法

js
sendReport(reportId, data)

参数

reportId

一个 8 位报告 ID。如果 HID 设备不使用报告 ID,则发送 0

data

字节,以 ArrayBufferTypedArrayDataView 的形式。

返回值

一个 Promise,在报告发送后解析为 undefined

异常

NotAllowedError DOMException

如果由于任何原因发送报告失败,则抛出此异常。

示例

下面的示例展示了如何使用输出报告让 Joy-Con 设备震动。您可以在文章 连接到不常见的 HID 设备 中查看更多示例和实时演示。

js
// First, send a command to enable vibration.
// Magical bytes come from 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));

// Then, send a command to make the Joy-Con device rumble.
// Actual bytes are available in the sample.
const rumbleData = [
  /* … */
];
await device.sendReport(0x10, new Uint8Array(rumbleData));

规范

规范
WebHID API
# dom-hiddevice-sendreport

浏览器兼容性

BCD 表仅在浏览器中加载