HIDDevice
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Note: This feature is available in Web Workers, except for Shared Web Workers.
Giao diện HIDDevice của WebHID API đại diện cho một thiết bị HID. Nó cung cấp các thuộc tính để truy cập thông tin về thiết bị, các phương thức để mở và đóng kết nối, cũng như gửi và nhận báo cáo.
Thuộc tính phiên bản
Giao diện này cũng kế thừa các thuộc tính từ EventTarget.
HIDDevice.openedRead only Experimental-
Trả về giá trị
boolean,truenếu thiết bị đang có kết nối mở. HIDDevice.vendorIdRead only Experimental-
Trả về
vendorIdcủa thiết bị HID. HIDDevice.productIdRead only Experimental-
Trả về
productIdcủa thiết bị HID. HIDDevice.productNameRead only Experimental-
Trả về chuỗi chứa tên sản phẩm của thiết bị HID.
HIDDevice.collectionsRead only Experimental-
Trả về một mảng các định dạng báo cáo của thiết bị HID.
Sự kiện
inputreportExperimental-
Kích hoạt khi thiết bị gửi một báo cáo.
Phương thức phiên bản
Giao diện này cũng kế thừa các phương thức từ EventTarget.
HIDDevice.open()Experimental-
Mở kết nối đến thiết bị HID này và trả về một
Promiseđược giải quyết khi kết nối thành công. HIDDevice.close()Experimental-
Đóng kết nối đến thiết bị HID này và trả về một
Promiseđược giải quyết khi kết nối đã đóng. HIDDevice.forget()Experimental-
Đóng kết nối đến thiết bị HID này và đặt lại quyền truy cập, trả về một
Promiseđược giải quyết khi quyền đã được đặt lại. HIDDevice.sendReport()Experimental-
Gửi báo cáo đầu ra đến thiết bị HID này và trả về một
Promiseđược giải quyết khi báo cáo đã được gửi. HIDDevice.sendFeatureReport()Experimental-
Gửi báo cáo tính năng đến thiết bị HID này và trả về một
Promiseđược giải quyết khi báo cáo đã được gửi. HIDDevice.receiveFeatureReport()Experimental-
Nhận báo cáo tính năng từ thiết bị HID này dưới dạng một
Promiseđược giải quyết với mộtDataView. Điều này cho phép truy cập có kiểu vào nội dung của thông điệp này.
Ví dụ
Ví dụ sau minh họa cách lắng nghe sự kiện inputreport cho phép ứng dụng phát hiện nút nào được nhấn trên thiết bị Joy-Con Right.
device.addEventListener("inputreport", (event) => {
const { data, device, reportId } = event;
// Handle only the Joy-Con Right device and a specific report ID.
if (device.productId !== 0x2007 && reportId !== 0x3f) return;
const value = data.getUint8(0);
if (value === 0) return;
const someButtons = { 1: "A", 2: "X", 4: "B", 8: "Y" };
console.log(`User pressed button ${someButtons[value]}.`);
});
Trong ví dụ sau, sendFeatureReport được dùng để làm thiết bị nhấp nháy.
const reportId = 1;
for (let i = 0; i < 10; i++) {
// Turn off
await device.sendFeatureReport(reportId, Uint32Array.from([0, 0]));
await new Promise((resolve) => setTimeout(resolve, 100));
// Turn on
await device.sendFeatureReport(reportId, Uint32Array.from([512, 0]));
await new Promise((resolve) => setTimeout(resolve, 100));
}
Bạn có thể xem thêm ví dụ và bản demo trực tiếp trong bài viết Kết nối với các thiết bị HID không phổ biến.
Thông số kỹ thuật
| Specification |
|---|
| WebHID API> # dom-hiddevice> |