說明
使用 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
傳回
-
Promise<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;如果沒有報表 ID,則為
0
。 -
資料或曾存取這類資料的人員
ArrayBuffer
報表資料。
-
回呼
函式選用
callback
參數如下所示:() => void
傳回
-
Promise<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;如果沒有報表 ID,則為
0
。 -
資料或曾存取這類資料的人員
ArrayBuffer
報表資料。
-
回呼
函式選用
callback
參數如下所示:() => void
傳回
-
Promise<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
號碼
-