Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

HIDDevice

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

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 vor der Verwendung auf produktiven Webseiten.

Hinweis: This feature is available in Web Workers, except for Shared Web Workers.

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

EventTarget HIDDevice

Instanz-Eigenschaften

Diese Schnittstelle erbt auch Eigenschaften von EventTarget.

HIDDevice.opened Schreibgeschützt

Gibt ein Boolean zurück, das true ist, wenn das Gerät eine offene Verbindung hat.

HIDDevice.vendorId Schreibgeschützt

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

HIDDevice.productId Schreibgeschützt

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

HIDDevice.productName Schreibgeschützt

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

HIDDevice.collections Schreibgeschützt

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

Ereignisse

inputreport

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

Instanz-Methoden

Diese Schnittstelle erbt auch Methoden von EventTarget.

HIDDevice.open()

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

HIDDevice.close()

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()

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

HIDDevice.sendReport()

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

HIDDevice.sendFeatureReport()

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

HIDDevice.receiveFeatureReport()

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

Beispiele

Das folgende Beispiel zeigt, wie ein inputreport-Ereignis überwacht wird, das der Anwendung ermöglicht zu erkennen, welcher Knopf auf einem Joy-Con Right-Gerät gedrückt wurde.

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 blinken zu lassen.

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-Demonstrationen finden Sie im Artikel Connecting to uncommon HID devices.

Spezifikationen

Spezifikation
WebHID API
# dom-hiddevice

Browser-Kompatibilität