chrome.hid

說明

使用 chrome.hid API 與已連結的 HID 裝置互動。這個 API 讓使用者能在應用程式環境內存取 HID 作業。透過這個 API,應用程式可以做為硬體裝置的驅動程式。系統會透過設定 runtime.lastError,並執行該函式的一般回呼,回報這個 API 產生的錯誤。在這種情況下,回呼的一般參數會處於未定義狀態。

權限

hid

類型

DeviceFilter

屬性

  • productId

    編號 選填

    裝置產品 ID (只有在供應商 ID 相符時才會勾選)。

  • 用量

    編號 選填

    HID 用量 ID,僅在 HID 使用頁面相符時勾選。

  • usagePage

    編號 選填

    HID 用量頁面 ID。

  • vendorId

    編號 選填

    裝置供應商 ID。

GetDevicesOptions

屬性

  • 篩選器

    DeviceFilter[] 選用

    系統會傳回符合任何指定篩選條件的裝置。如果篩選清單空白,則會傳回應用程式有權使用的所有裝置。

  • productId

    編號 選填

    已淘汰

    等同於設定 DeviceFilter.productId

  • vendorId

    編號 選填

    已淘汰

    等同於設定 DeviceFilter.vendorId

HidCollectionInfo

屬性

  • reportIds

    數字 []

    屬於集合及其子項目的報表 ID。

  • 用量

    數字

    頁面定義的用法 ID。

  • usagePage

    數字

    HID 用量頁面 ID。

HidConnectInfo

屬性

  • connectionId

    數字

    用於在所有其他函式中識別這個連結的不透明 ID。

HidDeviceInfo

屬性

  • 這部裝置報告描述元的頂層集合。

  • deviceId

    數字

    不透明的裝置 ID。

  • maxFeatureReportSize

    數字

    頂層集合的功能報表大小上限。

  • maxInputReportSize

    數字

    頂層集合的輸入報表大小上限。

  • maxOutputReportSize

    數字

    頂層集合的輸出報表大小上限。

  • productId

    數字

    產品 ID。

  • productName

    字串

    Chrome 46 以上版本

    從裝置讀取的產品名稱 (如有)。

  • reportDescriptor

    ArrayBuffer

    原始裝置報告描述元 (不適用於 Windows)。

  • serialNumber

    字串

    Chrome 46 以上版本

    從裝置讀取的序號 (如有)。

  • vendorId

    數字

    供應商 ID。

方法

connect()

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

開啟連接 HID 裝置的連線,以便進行通訊。

參數

傳回

  • Promise<HidConnectInfo>

    Chrome 117 以上版本

    Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。

disconnect()

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

中斷與裝置的連線。在呼叫這個方法後對裝置叫用作業很安全,但沒有作用。

參數

  • connectionId

    數字

    connect 傳回的 connectionId

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 117 以上版本

    Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。

getDevices()

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

列舉已連線的 HID 裝置。

參數

傳回

  • Promise&lt;HidDeviceInfo[]&gt;

    Chrome 117 以上版本

    Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。

receive()

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

要接收裝置的下一次輸入報告。

參數

  • connectionId

    數字

    connect 傳回的 connectionId

  • 回呼

    函式

    callback 參數如下所示:

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

    • reportId

      數字

      報表 ID;如果沒有,則為 0

    • 資料

      ArrayBuffer

      報表資料,報表 ID 前置字元 (如有) 就會遭到移除。

receiveFeatureReport()

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

要求裝置提供功能報告。

參數

  • connectionId

    數字

    connect 傳回的 connectionId

  • reportId

    數字

    報表 ID;如果沒有,則為 0

  • 回呼

    函式 選用

    callback 參數如下所示:

    (data: ArrayBuffer) => void

    • 資料

      ArrayBuffer

      如果裝置傳送了報表資料,包括報表 ID 前置字元。

傳回

  • Promise<ArrayBuffer>

    Chrome 117 以上版本

    Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。

send()

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

將輸出報告傳送至裝置。

注意:請勿在 data 中加入報表 ID 前置字串。系統會視需要新增這項資訊。

參數

  • connectionId

    數字

    connect 傳回的 connectionId

  • reportId

    數字

    要使用的報表 ID;如果沒有使用,則為 0

  • 資料

    ArrayBuffer

    報表資料。

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 117 以上版本

    Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。

sendFeatureReport()

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

將功能報告傳送到裝置。

注意:請勿在 data 中加入報表 ID 前置字串。系統會視需要新增這項資訊。

參數

  • connectionId

    數字

    connect 傳回的 connectionId

  • reportId

    數字

    要使用的報表 ID;如果沒有使用,則為 0

  • 資料

    ArrayBuffer

    報表資料。

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 117 以上版本

    Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。

活動

onDeviceAdded

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

裝置加入系統時產生的事件。事件只會向具備裝置存取權的應用程式和擴充功能廣播。在安裝時或使用者接受選擇性權限時,即可授予權限 (請參閱 permissions.request)。

參數

onDeviceRemoved

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

裝置從系統中移除時產生的事件。請查看 onDeviceAdded 瞭解哪些活動是由提供。

參數

  • 回呼

    函式

    callback 參數如下所示:

    (deviceId: number) => void

    • deviceId

      數字