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

浏览器兼容性

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
sendReport
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.