chrome.hid

说明

使用 chrome.hid API 与已连接的 HID 设备交互。此 API 支持从应用上下文访问 HID 操作。使用此 API,应用可用作硬件设备的驱动程序。系统会通过设置 runtime.lastError 并执行函数的常规回调来报告此 API 生成的错误。在这种情况下,回调的常规参数将未定义。

权限

hid

类型

DeviceFilter

属性

  • productId

    数字可选

    设备产品 ID,仅在供应商 ID 匹配时才勾选。

  • 使用量

    数字可选

    HID 用途标识符,仅当 HID 用途页面匹配时检查。

  • usagePage

    数字可选

    HID 用途页面标识符。

  • vendorId

    数字可选

    设备供应商 ID。

GetDevicesOptions

属性

  • 过滤条件

    DeviceFilter[] 可选

    系统将返回与任意指定过滤条件相匹配的设备。如果过滤器列表为空,系统将返回应用有权使用的所有设备。

  • productId

    数字可选

    已废弃

    相当于设置 DeviceFilter.productId

  • vendorId

    数字可选

    已废弃

    相当于设置 DeviceFilter.vendorId

HidCollectionInfo

属性

  • reportIds

    数值 []

    属于集合及其子级的报告 ID。

  • 使用量

    number

    页面定义的用量标识符。

  • usagePage

    number

    HID 用途页面标识符。

HidConnectInfo

属性

  • connectionId

    number

    用于在所有其他函数中标识此连接的不透明 ID。

HidDeviceInfo

属性

  • 收藏集

    此设备报告描述符中的顶级集合。

  • deviceId

    number

    不透明的设备 ID。

  • maxFeatureReportSize

    number

    顶级集合的特征报告大小上限。

  • maxInputReportSize

    number

    顶级集合的输入报告大小上限。

  • maxOutputReportSize

    number

    顶级集合的输出报告大小上限。

  • productId

    number

    产品 ID。

  • productName

    string

    Chrome 46 及更高版本

    从设备中读取的产品名称(如果有)。

  • reportDescriptor

    ArrayBuffer

    原始设备报告描述符(在 Windows 上不可用)。

  • serialNumber

    string

    Chrome 46 及更高版本

    从设备读取的序列号(如果有)。

  • vendorId

    number

    供应商 ID。

方法

connect()

Promise
chrome.hid.connect(
  deviceId: number,
  callback?: function,
)

打开与 HID 设备的连接以进行通信。

参数

返回

  • Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

disconnect()

Promise
chrome.hid.disconnect(
  connectionId: number,
  callback?: function,
)

断开与设备的连接。调用此函数后在设备上调用操作是安全的,但没有效果。

参数

  • connectionId

    number

    connect 返回的 connectionId

  • callback

    函数(可选)

    callback 参数如下所示:

    ()=>void

返回

  • Promise<void>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

getDevices()

Promise
chrome.hid.getDevices(
  options: GetDevicesOptions,
  callback?: function,
)

枚举连接的 HID 设备。

参数

返回

  • Promise<HidDeviceInfo[]>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

receive()

chrome.hid.receive(
  connectionId: number,
  callback: function,
)

从设备接收下一份输入报告。

参数

  • connectionId

    number

    connect 返回的 connectionId

  • callback

    功能

    callback 参数如下所示:

    (reportId: number,data: ArrayBuffer)=>void

    • reportId

      number

      报告 ID 或 0(如果没有)。

    • data

      ArrayBuffer

      系统会移除报告数据,报告 ID 前缀(如果有)。

receiveFeatureReport()

Promise
chrome.hid.receiveFeatureReport(
  connectionId: number,
  reportId: number,
  callback?: function,
)

请求设备提供功能报告。

参数

  • connectionId

    number

    connect 返回的 connectionId

  • reportId

    number

    报告 ID,或 0(如果没有)。

  • callback

    函数(可选)

    callback 参数如下所示:

    (data: ArrayBuffer)=>void

    • data

      ArrayBuffer

      报告数据,包括报告 ID 前缀(如果设备发送了报告 ID 前缀)。

返回

  • Promise<ArrayBuffer>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

send()

Promise
chrome.hid.send(
  connectionId: number,
  reportId: number,
  data: ArrayBuffer,
  callback?: function,
)

向设备发送输出报告。

注意:请勿在 data 中添加报告 ID 前缀。如有必要,系统会添加该网址。

参数

  • connectionId

    number

    connect 返回的 connectionId

  • reportId

    number

    要使用的报告 ID,或 0(如果没有)。

  • data

    ArrayBuffer

    报告数据。

  • callback

    函数(可选)

    callback 参数如下所示:

    ()=>void

返回

  • Promise<void>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

sendFeatureReport()

Promise
chrome.hid.sendFeatureReport(
  connectionId: number,
  reportId: number,
  data: ArrayBuffer,
  callback?: function,
)

向设备发送功能报告。

注意:请勿在 data 中添加报告 ID 前缀。如有必要,系统会添加该网址。

参数

  • connectionId

    number

    connect 返回的 connectionId

  • reportId

    number

    要使用的报告 ID,或 0(如果没有)。

  • data

    ArrayBuffer

    报告数据。

  • callback

    函数(可选)

    callback 参数如下所示:

    ()=>void

返回

  • Promise<void>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

活动

onDeviceAdded

chrome.hid.onDeviceAdded.addListener(
  callback: function,
)

将设备添加到系统时生成的事件。系统只会向有权访问设备的应用和扩展程序广播事件。可能是在用户安装时或在用户接受可选权限时授予的(请参阅 permissions.request)。

参数

onDeviceRemoved

chrome.hid.onDeviceRemoved.addListener(
  callback: function,
)

从系统中移除设备时生成的事件。如需了解传送哪些事件,请参阅 onDeviceAdded

参数

  • callback

    功能

    callback 参数如下所示:

    (deviceId: number)=>void

    • deviceId

      number