WebHID API
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.
Hinweis: Dieses Feature ist verfügbar in Web Workers, außer in Shared Web Workers.
Ein Human Interface Device (HID) ist ein Gerätetyp, der Eingaben von oder Ausgaben an Menschen liefert. Es bezieht sich auch auf das HID-Protokoll, einen Standard für die bidirektionale Kommunikation zwischen einem Host und einem Gerät, das entwickelt wurde, um das Installationsverfahren zu vereinfachen. Das HID-Protokoll wurde ursprünglich für USB-Geräte entwickelt, aber es wurde seitdem über viele andere Protokolle hinaus implementiert, einschließlich Bluetooth.
Schnittstellen
HID
-
Bietet Methoden zum Verbinden mit HID-Geräten, zum Auflisten angehängter HID-Geräte und Ereignishandlern für verbundene HID-Geräte.
HIDDevice
-
Repräsentiert ein HID-Gerät. Es ist möglich, dass ein physisches Gerät durch mehrere
HIDDevice
-Objekte repräsentiert wird. HIDInputReportEvent
-
Wird an das
HIDDevice
-inputreport
Ereignis übergeben, wenn ein Eingabebericht von einem zugeordneten HID-Gerät empfangen wird. HIDConnectionEvent
-
Wird an
HID
-connect
unddisconnect
Ereignisse übergeben, wenn ein Gerät verbunden oder getrennt wird.
Beispiele
Sie können mit der Methode requestDevice()
eine Verbindung zu einem Gerät herstellen. In diesem Fall wählen wir aus allen verfügbaren Geräten aus.
const device = await navigator.hid.requestDevice({ filters: [] });
// A popup titled `... wants to connect to a HID Device` with `Cancel` and `Connect` buttons will show up with a device list to select from.
// Select one and click on `Connect` button. Then the device will be an array with the selected device in it.
Wir können alle Geräte abrufen, für die der Website zuvor Zugriff gewährt wurde, und die Gerätenamen in der Konsole protokollieren.
let devices = await navigator.hid.getDevices();
devices.forEach((device) => {
console.log(`HID: ${device.productName}`);
});
Wir können Ereignislistener für die Trennung von HID-Geräten registrieren.
navigator.hid.addEventListener("disconnect", (event) => {
console.log(`HID disconnected: ${event.device.productName}`);
console.dir(event);
});
// For example, when my connected keyboard gets disconnected, the log in the console will show:
// HID disconnected: USB Keyboard
// {
// bubbles: false
// cancelBubble: false
// cancelable: false
// composed: false
// currentTarget: HID {onconnect: null, ondisconnect: null}
// defaultPrevented: false
// device: HIDDevice {oninputreport: null, opened: false, vendorId: 6700, productId: 11555, productName: "USB Keyboard", …}
// eventPhase: 0
// isTrusted: true
// path: []
// returnValue: true
// srcElement: HID {onconnect: null, ondisconnect: null}
// target: HID {onconnect: null, ondisconnect: null}
// timeStamp: 18176.600000023842
// type: "disconnect"
// }
// The event above is an instance of the HIDConnectionEvent interface.
Spezifikationen
Specification |
---|
WebHID API # dom-hid |
Browser-Kompatibilität
BCD tables only load in the browser