HIDDevice

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

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.

Die HIDDevice-Schnittstelle der WebHID API repräsentiert ein HID-Gerät. Sie bietet Eigenschaften zum Zugriff auf Informationen über das Gerät, Methoden zum Öffnen und Schließen der Verbindung sowie zum Senden und Empfangen von Berichten.

EventTarget HIDDevice

Instanzeigenschaften

Diese Schnittstelle erbt auch Eigenschaften von EventTarget.

HIDDevice.opened Nur lesbar Experimentell

Gibt einen boolean zurück, der wahr ist, wenn das Gerät eine offene Verbindung hat.

HIDDevice.vendorId Nur lesbar Experimentell

Gibt die vendorId des HID-Geräts zurück.

HIDDevice.productId Nur lesbar Experimentell

Gibt die productId des HID-Geräts zurück.

HIDDevice.productName Nur lesbar Experimentell

Gibt einen String zurück, der den Produktnamen des HID-Geräts enthält.

HIDDevice.collections Nur lesbar Experimentell

Gibt ein Array von Berichtsformaten für das HID-Gerät zurück.

Ereignisse

inputreport Experimentell

Wird ausgelöst, wenn ein Bericht vom Gerät gesendet wird.

Instanzmethoden

Diese Schnittstelle erbt auch Methoden von EventTarget.

HIDDevice.open() Experimentell

Öffnet eine Verbindung zu diesem HID-Gerät und gibt ein Promise zurück, das aufgelöst wird, sobald die Verbindung erfolgreich hergestellt wurde.

HIDDevice.close() Experimentell

Schließt die Verbindung zu diesem HID-Gerät und gibt ein Promise zurück, das aufgelöst wird, sobald die Verbindung geschlossen wurde.

HIDDevice.forget() Experimentell

Schließt die Verbindung zu diesem HID-Gerät und setzt die Zugriffsberechtigung zurück. Es gibt ein Promise zurück, das aufgelöst wird, sobald die Berechtigung zurückgesetzt wurde.

HIDDevice.sendReport() Experimentell

Sendet einen Ausgabebericht an dieses HID-Gerät und gibt ein Promise zurück, das aufgelöst wird, sobald der Bericht gesendet wurde.

HIDDevice.sendFeatureReport() Experimentell

Sendet einen Merkmalsbericht an dieses HID-Gerät und gibt ein Promise zurück, das aufgelöst wird, sobald der Bericht gesendet wurde.

HIDDevice.receiveFeatureReport() Experimentell

Empfängt einen Merkmalsbericht von diesem HID-Gerät in Form eines Promise, das mit einem DataView aufgelöst wird. Dies ermöglicht einen typisierten Zugriff auf den Inhalt dieser Nachricht.

Beispiele

Das folgende Beispiel zeigt, wie ein inputreport-Ereignis überwacht wird, um zu erkennen, welcher Knopf auf einem Joy-Con Right-Gerät gedrückt wird.

js
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]}.`);
});

Im folgenden Beispiel wird sendFeatureReport verwendet, um ein Gerät zum Blinken zu bringen.

js
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));
}

Weitere Beispiele und Live-Demos finden Sie in dem Artikel Verbindung zu ungewöhnlichen HID-Geräten herstellen.

Spezifikationen

Specification
WebHID API
# dom-hiddevice

Browser-Kompatibilität

BCD tables only load in the browser