Các thiết bị có giao diện dành cho người dùng trên web: một số ví dụ ngắn gọn

Kết nối với các thiết bị không phổ biến từ ứng dụng của bạn.

Joe Medley
Joe Medley
Matt Reynolds
Matt Reynolds

API WebHID là gì?

Nhiều thiết bị có giao diện dành cho người dùng (HID) quá mới, quá cũ hoặc quá bất thường mà trình điều khiển thiết bị của hệ thống không thể truy cập được. API WebHID giải quyết vấn đề này bằng cách cung cấp cách triển khai logic dành riêng cho thiết bị trong JavaScript.

Các trường hợp sử dụng đề xuất cho API WebHID

HID nhận dữ liệu đầu vào hoặc cung cấp đầu ra cho con người. Ví dụ về các thiết bị bao gồm bàn phím, thiết bị trỏ (chuột, màn hình cảm ứng, v.v.) và tay điều khiển trò chơi. Giao thức HID giúp bạn có thể truy cập vào các thiết bị này trên máy tính bằng trình điều khiển hệ điều hành. Nền tảng web hỗ trợ HID bằng cách dựa vào các trình điều khiển này.

Việc không thể truy cập các thiết bị HID không phổ biến sẽ đặc biệt gây khó chịu khi nói đến tính năng hỗ trợ tay điều khiển trò chơi. Tay điều khiển trò chơi được thiết kế cho máy tính thường sử dụng HID cho các phương thức nhập vào tay điều khiển trò chơi (nút, cần điều khiển, kích hoạt) và đầu ra (đèn LED, tiếng ồn). Tuy nhiên, các dữ liệu đầu vào và đầu ra của tay điều khiển trò chơi không được chuẩn hoá tốt và các trình duyệt web thường yêu cầu logic tuỳ chỉnh cho các thiết bị cụ thể. Điều này là không ổn định và dẫn đến khả năng hỗ trợ kém cho những thiết bị cũ và không phổ biến. Điều này cũng khiến trình duyệt phụ thuộc vào các tương thích có trong hành vi của các thiết bị cụ thể.

Bản minh hoạ, bản minh hoạ, bản minh hoạ

Nếu bạn muốn biết cách hoạt động của bất kỳ mẫu nào trong số này, thì mã nguồn của tất cả các mẫu đó có trên GitHub. Có một ví dụ về mã cơ bản trong phần giải thích.

Đèn nền bàn phím MacBook Pro

Rào cản lớn nhất khi dùng thử bất kỳ bản minh hoạ nào trong số này là thiếu quyền truy cập vào thiết bị. May mắn là nếu bạn có MacBook Pro có TouchBar, thì bạn không cần phải mua bất cứ thứ gì. Bản minh hoạ này cho phép bạn sử dụng API ngay trên máy tính xách tay. Bài viết này cũng cho thấy cách WebHID có thể được dùng để mở khoá chức năng của thiết bị tích hợp sẵn, chứ không chỉ thiết bị ngoại vi.

Tác giả: FWeinb
Bản minh hoạ/Nguồn: Đèn nền bàn phím

Tay điều khiển trò chơi

Tay điều khiển không dây PlayStation 4

Tiếp theo là nội dung mà ít người biết đến. DualShock 4 của Sony là bộ điều khiển không dây dành cho máy chơi trò chơi PlayStation 4.

Bản minh hoạ DualShock 4 sử dụng WebHID để nhận báo cáo đầu vào thô từ DualShock 4, đồng thời cung cấp API cấp cao để truy cập vào con quay hồi chuyển, gia tốc kế, bàn di chuột, nút và dữ liệu đầu vào của cần điều khiển. Tính năng này cũng hỗ trợ chế độ rumble và đặt màu của đèn LED RGB nằm trong bộ điều khiển.

Tác giả: TheBITLINK
Bản minh hoạ: Bản minh hoạ DualShock 4 (Nguồn)

Tay điều khiển Nintendo Switch Joy-Con

Chơi trò chơi khủng long trên Chrome 🦖 ngoại tuyến bằng cách thực sự nhảy với bộ điều khiển Nintendo Switch Joy-Con trong túi của bạn. Bản minh hoạ này sử dụng Joy-Con WebHID. Đây là trình điều khiển WebHID cho tay điều khiển Joy-Con của Nintendo Switch.

Tác giả: Thomas Steiner
Bản minh hoạ: Chrome Dino WebHID (nguồn minh hoạ, nguồn trình điều khiển)

Dải BlinkStick

Dải BlinkStick là dải đèn tương thích với HID với 8 đèn LED RGB. Bản minh hoạ cho phép người dùng chọn trong số một số mẫu nhấp nháy, bao gồm đuổi theo, nháy mắt và máy quét Laaron (còn gọi là Cylon).

Tác giả: Robat Williams
Bản minh hoạ: blinkstick-strip (nguồn)

Bản minh hoạ này có chức năng gì? (Chờ.) Nó sẽ nhấp nháy. Trên thực tế, đó là 3 bản minh hoạ sử dụng đèn thông báo nhấp nháy(1) qua USB.

blink(1) rất đơn giản và được ghi lại đầy đủ, do đó đây là một lựa chọn tuyệt vời để bắt đầu sử dụng HID.

Tác giả: Tod E. Kurt
Bản minh hoạ: blink(1) (nguồn)

Xác nhận

Cảm ơn Pete LePageKayce Basques đã viết bài đánh giá về bài viết này.

Ảnh chụp của Ugur Akdemir trên Unsplash