תיאור
אפשר להשתמש ב-API chrome.hid
כדי ליצור אינטראקציה עם מכשירי HID מחוברים. ממשק ה-API הזה מספק גישה לפעולות HID מתוך ההקשר של אפליקציה. באמצעות ממשק ה-API הזה, אפליקציות יכולות לפעול כמנהלי התקנים למכשירי חומרה. כדי לדווח על שגיאות שנוצרות על ידי ה-API הזה, צריך להגדיר את runtime.lastError
ולהפעיל את הקריאה החוזרת הרגילה של הפונקציה. במקרה כזה, הפרמטרים הרגילים של פונקציית הקריאה החוזרת יהיו לא מוגדרים.
הרשאות
hid
סוגים
DeviceFilter
מאפיינים
-
productId
מספר אופציונלי
מזהה המוצר של המכשיר, נבדק רק אם מזהה הספק תואם.
-
שימוש
מספר אופציונלי
מזהה השימוש ב-HID, נבדק רק אם דף השימוש ב-HID תואם.
-
usagePage
מספר אופציונלי
מזהה דף השימוש של HID.
-
vendorId
מספר אופציונלי
מזהה הספק של המכשיר.
GetDevicesOptions
מאפיינים
-
מסננים
DeviceFilter[] אופציונלי
יוחזר מכשיר שתואם למסנן כלשהו. רשימת מסננים ריקה תחזיר את כל המכשירים שהאפליקציה קיבלה הרשאה לגשת אליהם.
-
productId
מספר אופציונלי
הוצא משימוששווה ערך להגדרה של
DeviceFilter.productId
. -
vendorId
מספר אופציונלי
הוצא משימוששווה ערך להגדרה של
DeviceFilter.vendorId
.
HidCollectionInfo
מאפיינים
-
reportIds
number[]
מזהי הדוחות ששייכים לאוסף ולדוחות המשניים שלו.
-
שימוש
number
מזהה שימוש שמוגדר בדף.
-
usagePage
number
מזהה דף השימוש של HID.
HidConnectInfo
מאפיינים
-
connectionId
number
המזהה האטום שמשמש לזיהוי החיבור הזה בכל הפונקציות האחרות.
HidDeviceInfo
מאפיינים
-
אוספים
אוספים ברמה העליונה מתיאורי הדוחות של המכשיר הזה.
-
deviceId
number
מזהה מכשיר אטום.
-
maxFeatureReportSize
number
הגודל המקסימלי של דוח התכונות באוסף ברמה העליונה.
-
maxInputReportSize
number
הגודל המקסימלי של דוח קלט באוסף ברמה העליונה.
-
maxOutputReportSize
number
הגודל המקסימלי של דוח הפלט של אוסף ברמה העליונה.
-
productId
number
מזהה המוצר.
-
productName
מחרוזת
Chrome 46 ואילךשם המוצר שנקרא מהמכשיר, אם הוא זמין.
-
reportDescriptor
ArrayBuffer
מתאר דוח גולמי של המכשיר (לא זמין ב-Windows).
-
serialNumber
מחרוזת
Chrome 46 ואילךהמספר הסידורי שנקרא מהמכשיר, אם הוא זמין.
-
vendorId
number
מזהה הספק.
Methods
connect()
chrome.hid.connect(
deviceId: number,
callback?: function,
): Promise<HidConnectInfo>
פותחים חיבור למכשיר HID לצורך תקשורת.
פרמטרים
-
deviceId
number
ה-
HidDeviceInfo.deviceId
של המכשיר שרוצים לפתוח. -
callback
פונקציה אופציונלית
הפרמטר
callback
נראה כך:(connection: HidConnectInfo) => void
-
חיבור
-
החזרות
-
Promise<HidConnectInfo>
Chrome 117 ואילךההבטחות נתמכות רק ב-Manifest V3 ובגרסאות מאוחרות יותר. בפלטפורמות אחרות צריך להשתמש בפונקציות Callback.
disconnect()
chrome.hid.disconnect(
connectionId: number,
callback?: function,
): Promise<void>
להתנתק ממכשיר. אפשר להפעיל פעולות במכשיר אחרי שקוראים לפונקציה הזו, אבל לא תהיה להן השפעה.
פרמטרים
-
connectionId
number
הערך
connectionId
שמוחזר על ידיconnect
. -
callback
פונקציה אופציונלית
הפרמטר
callback
נראה כך:() => void
החזרות
-
Promise<void>
Chrome 117 ואילךההבטחות נתמכות רק ב-Manifest V3 ובגרסאות מאוחרות יותר. בפלטפורמות אחרות צריך להשתמש בפונקציות Callback.
getDevices()
chrome.hid.getDevices(
options: GetDevicesOptions,
callback?: function,
): Promise<HidDeviceInfo[]>
מפרט את התקני ה-HID המחוברים.
פרמטרים
-
options
המאפיינים לחיפוש במכשירי היעד.
-
callback
פונקציה אופציונלית
הפרמטר
callback
נראה כך:(devices: HidDeviceInfo[]) => void
-
מכשירים
-
החזרות
-
Promise<HidDeviceInfo[]>
Chrome 117 ואילךההבטחות נתמכות רק ב-Manifest V3 ובגרסאות מאוחרות יותר. בפלטפורמות אחרות צריך להשתמש בפונקציות Callback.
receive()
chrome.hid.receive(
connectionId: number,
callback: function,
): void
מקבלים את דוח הקלט הבא מהמכשיר.
פרמטרים
-
connectionId
number
הערך
connectionId
שמוחזר על ידיconnect
. -
callback
פונקציה
הפרמטר
callback
נראה כך:(reportId: number, data: ArrayBuffer) => void
-
reportId
number
מזהה הדוח או
0
אם אין כזה. -
נתונים
ArrayBuffer
נתוני הדוח, הקידומת של מזהה הדוח (אם קיימת) מוסרים.
-
receiveFeatureReport()
chrome.hid.receiveFeatureReport(
connectionId: number,
reportId: number,
callback?: function,
): Promise<ArrayBuffer>
שליחת בקשה לדיווח על תכונה מהמכשיר.
פרמטרים
-
connectionId
number
הערך
connectionId
שמוחזר על ידיconnect
. -
reportId
number
מזהה הדוח, או
0
אם אין מזהה. -
callback
פונקציה אופציונלית
הפרמטר
callback
נראה כך:(data: ArrayBuffer) => void
-
נתונים
ArrayBuffer
נתוני הדוח, כולל קידומת של מזהה הדוח אם המכשיר שולח אותה.
-
החזרות
-
Promise<ArrayBuffer>
Chrome 117 ואילךההבטחות נתמכות רק ב-Manifest V3 ובגרסאות מאוחרות יותר. בפלטפורמות אחרות צריך להשתמש בפונקציות Callback.
send()
chrome.hid.send(
connectionId: number,
reportId: number,
data: ArrayBuffer,
callback?: function,
): Promise<void>
שליחת דוח פלט למכשיר.
הערה: אין לכלול קידומת של מזהה דוח ב-data
. המערכת תוסיף אותו אם יהיה צורך.
פרמטרים
-
connectionId
number
הערך
connectionId
שמוחזר על ידיconnect
. -
reportId
number
מזהה הדוח שבו רוצים להשתמש, או
0
אם לא רוצים להשתמש בדוח. -
נתונים
ArrayBuffer
נתוני הדוח.
-
callback
פונקציה אופציונלית
הפרמטר
callback
נראה כך:() => void
החזרות
-
Promise<void>
Chrome 117 ואילךההבטחות נתמכות רק ב-Manifest V3 ובגרסאות מאוחרות יותר. בפלטפורמות אחרות צריך להשתמש בפונקציות Callback.
sendFeatureReport()
chrome.hid.sendFeatureReport(
connectionId: number,
reportId: number,
data: ArrayBuffer,
callback?: function,
): Promise<void>
שליחת דוח תכונות למכשיר.
הערה: אין לכלול קידומת של מזהה דוח ב-data
. המערכת תוסיף אותו אם יהיה צורך.
פרמטרים
-
connectionId
number
הערך
connectionId
שמוחזר על ידיconnect
. -
reportId
number
מזהה הדוח שבו רוצים להשתמש, או
0
אם לא רוצים להשתמש בדוח. -
נתונים
ArrayBuffer
נתוני הדוח.
-
callback
פונקציה אופציונלית
הפרמטר
callback
נראה כך:() => void
החזרות
-
Promise<void>
Chrome 117 ואילךההבטחות נתמכות רק ב-Manifest V3 ובגרסאות מאוחרות יותר. בפלטפורמות אחרות צריך להשתמש בפונקציות Callback.
אירועים
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
number
-