说明
使用 chrome.hid API 与已连接的 HID 设备互动。此 API 可在应用上下文中提供对 HID 操作的访问权限。借助此 API,应用可以充当硬件设备的驱动程序。此 API 生成的错误通过设置 runtime.lastError 并执行函数的常规回调来报告。在这种情况下,回调的常规参数将处于未定义状态。
权限
hid类型
DeviceFilter
属性
- 
    productId
number 可选
设备产品 ID,仅在供应商 ID 匹配时检查。
 - 
    使用量
number 可选
HID 用途标识符,仅在 HID 用途页面匹配时进行检查。
 - 
    usagePage
number 可选
HID 用途页面标识符。
 - 
    vendorId
number 可选
设备供应商 ID。
 
GetDevicesOptions
属性
- 
    过滤器
DeviceFilter[] 可选
系统将返回与任何给定过滤条件匹配的设备。如果过滤条件列表为空,则会返回应用有权访问的所有设备。
 - 
    productId
number 可选
已弃用相当于设置
DeviceFilter.productId。 - 
    vendorId
number 可选
已弃用相当于设置
DeviceFilter.vendorId。 
HidCollectionInfo
属性
- 
    reportIds
number[]
属于相应集合及其子集合的报告 ID。
 - 
    使用量
数值
页面定义的用途标识符。
 - 
    usagePage
数值
HID 用途页面标识符。
 
HidConnectInfo
属性
- 
    connectionId
数值
用于在所有其他函数中标识相应连接的不透明 ID。
 
HidDeviceInfo
属性
- 
    收藏集
相应设备报告描述符中的顶级集合。
 - 
    deviceId
数值
不透明设备 ID。
 - 
    maxFeatureReportSize
数值
顶级集合的特征报告大小上限。
 - 
    maxInputReportSize
数值
顶级集合的输入报告大小上限。
 - 
    maxOutputReportSize
数值
顶级集合的最大输出报告大小。
 - 
    productId
数值
商品 ID。
 - 
    productName
字符串
Chrome 46 及更高版本从设备读取的产品名称(如果有)。
 - 
    reportDescriptor
ArrayBuffer
原始设备报告描述符(不适用于 Windows)。
 - 
    serialNumber
字符串
Chrome 46 及更高版本从设备读取的序列号(如有)。
 - 
    vendorId
数值
供应商 ID。
 
方法
connect()
chrome.hid.connect(
deviceId: number,
callback?: function,
): Promise<HidConnectInfo>
打开与 HID 设备的连接以进行通信。
参数
- 
    deviceId
数值
要打开的设备的
HidDeviceInfo.deviceId。 - 
    callback
函数 可选
callback参数如下所示:(connection: HidConnectInfo) => void
 
返回
- 
            
Promise<HidConnectInfo>
Chrome 117 及更高版本仅 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
 
disconnect()
chrome.hid.disconnect(
connectionId: number,
callback?: function,
): Promise<void>
断开与设备的连接。在调用此方法后,对设备调用操作是安全的,但不会产生任何效果。
参数
- 
    connectionId
数值
connect返回的connectionId。 - 
    callback
函数 可选
callback参数如下所示:() => void
 
返回
- 
            
Promise<void>
Chrome 117 及更高版本仅 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
 
getDevices()
chrome.hid.getDevices(
options: GetDevicesOptions,
callback?: function,
): Promise<HidDeviceInfo[]>
枚举已连接的 HID 设备。
参数
- 
    
要在目标设备上搜索的属性。
 - 
    callback
函数 可选
callback参数如下所示:(devices: HidDeviceInfo[]) => void
- 
    设备
 
 - 
    
 
返回
- 
            
Promise<HidDeviceInfo[]>
Chrome 117 及更高版本仅 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
 
receive()
chrome.hid.receive(
connectionId: number,
callback: function,
): void
接收来自设备的下一个输入报告。
参数
- 
    connectionId
数值
connect返回的connectionId。 - 
    callback
函数
callback参数如下所示:(reportId: number, data: ArrayBuffer) => void
- 
    reportId
数值
报告 ID,如果没有,则为
0。 - 
    数据
ArrayBuffer
移除报告数据、报告 ID 前缀(如果有)。
 
 - 
    
 
receiveFeatureReport()
chrome.hid.receiveFeatureReport(
connectionId: number,
reportId: number,
callback?: function,
): Promise<ArrayBuffer>
从设备请求功能报告。
参数
- 
    connectionId
数值
connect返回的connectionId。 - 
    reportId
数值
报告 ID,如果没有,则为
0。 - 
    callback
函数 可选
callback参数如下所示:(data: ArrayBuffer) => void
- 
    数据
ArrayBuffer
报告数据,包括设备发送的报告 ID 前缀(如果有)。
 
 - 
    
 
返回
- 
            
Promise<ArrayBuffer>
Chrome 117 及更高版本仅 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
 
send()
chrome.hid.send(
connectionId: number,
reportId: number,
data: ArrayBuffer,
callback?: function,
): Promise<void>
向设备发送输出报告。
注意:请勿在 data 中添加报告 ID 前缀。如有必要,系统会添加该参数。
参数
- 
    connectionId
数值
connect返回的connectionId。 - 
    reportId
数值
要使用的报告 ID;如果没有,则为
0。 - 
    数据
ArrayBuffer
报告数据。
 - 
    callback
函数 可选
callback参数如下所示:() => void
 
返回
- 
            
Promise<void>
Chrome 117 及更高版本仅 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
 
sendFeatureReport()
chrome.hid.sendFeatureReport(
connectionId: number,
reportId: number,
data: ArrayBuffer,
callback?: function,
): Promise<void>
向设备发送功能报告。
注意:请勿在 data 中添加报告 ID 前缀。如有必要,系统会添加该参数。
参数
- 
    connectionId
数值
connect返回的connectionId。 - 
    reportId
数值
要使用的报告 ID;如果没有,则为
0。 - 
    数据
ArrayBuffer
报告数据。
 - 
    callback
函数 可选
callback参数如下所示:() => void
 
返回
- 
            
Promise<void>
Chrome 117 及更高版本仅 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
 
事件
onDeviceAdded
chrome.hid.onDeviceAdded.addListener(
callback: function,
)
当设备添加到系统时生成的事件。事件仅广播给有权访问设备的应用和扩展程序。权限可能是在安装时授予的,也可能是在用户接受可选权限时授予的(请参阅 permissions.request)。
参数
- 
    callback
函数
callback参数如下所示:(device: HidDeviceInfo) => void
 
onDeviceRemoved
chrome.hid.onDeviceRemoved.addListener(
callback: function,
)
当设备从系统中移除时生成的事件。如需了解哪些事件会传递,请参阅 onDeviceAdded。
参数
- 
    callback
函数
callback参数如下所示:(deviceId: number) => void
- 
    deviceId
数值
 
 -