HIDDevice
Khả dụng hạn chế
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 Thử nghiệm-
Trả về giá trị
boolean,truenếu thiết bị đang có kết nối mở. HIDDevice.vendorIdRead only Thử nghiệm-
Trả về
vendorIdcủa thiết bị HID. HIDDevice.productIdRead only Thử nghiệm-
Trả về
productIdcủa thiết bị HID. HIDDevice.productNameRead only Thử nghiệm-
Trả về chuỗi chứa tên sản phẩm của thiết bị HID.
HIDDevice.collectionsRead only Thử nghiệm-
Trả về một mảng các định dạng báo cáo của thiết bị HID.
Sự kiện
inputreportThử nghiệm-
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()Thử nghiệm-
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()Thử nghiệm-
Đó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()Thử nghiệm-
Đó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()Thử nghiệm-
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()Thử nghiệm-
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()Thử nghiệm-
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
| Thông số kỹ thuật |
|---|
| WebHID API> # dom-hiddevice> |