說明
使用 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()
chrome.hid.connect(
deviceId: number,
callback?: function,
)
開啟連接 HID 裝置的連線,以便進行通訊。
參數
-
deviceId
數字
要開啟的裝置的
HidDeviceInfo.deviceId
。 -
回呼
函式 選用
callback
參數如下所示:(connection: HidConnectInfo) => void
傳回
-
Promise<HidConnectInfo>
Chrome 117 以上版本Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。
disconnect()
chrome.hid.disconnect(
connectionId: number,
callback?: function,
)
中斷與裝置的連線。在呼叫這個方法後對裝置叫用作業很安全,但沒有作用。
參數
-
connectionId
數字
connect
傳回的connectionId
。 -
回呼
函式 選用
callback
參數如下所示:() => void
傳回
-
承諾<void>
Chrome 117 以上版本Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。
getDevices()
chrome.hid.getDevices(
options: GetDevicesOptions,
callback?: function,
)
列舉已連線的 HID 裝置。
參數
-
要在目標裝置上搜尋的屬性。
-
回呼
函式 選用
callback
參數如下所示:(devices: HidDeviceInfo[]) => void
-
裝置
-
傳回
-
Promise<HidDeviceInfo[]>
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()
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()
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()
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
)。
參數
-
回呼
函式
callback
參數如下所示:(device: HidDeviceInfo) => void
onDeviceRemoved
chrome.hid.onDeviceRemoved.addListener(
callback: function,
)
裝置從系統中移除時產生的事件。請查看 onDeviceAdded
瞭解哪些活動是由提供。
參數
-
回呼
函式
callback
參數如下所示:(deviceId: number) => void
-
deviceId
數字
-