Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
WebUSB API
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell:Dies ist eineexperimentelle Technologie
Überprüfen Sie dieBrowser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Sicherer Kontext: Diese Funktion ist nur insicheren Kontexten (HTTPS) in einigen oder allenunterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist inWeb Workers verfügbar.
DieWebUSB API bietet eine Möglichkeit, nicht standardisierte Universal Serial Bus (USB) kompatible Geräte-Dienste für das Web zugänglich zu machen, um USB sicherer und benutzerfreundlicher zu gestalten.
In diesem Artikel
Konzepte und Nutzung
USB ist der De-facto-Standard für kabelgebundene Peripheriegeräte. Die USB-Geräte, die Sie mit Ihrem Computer verbinden, werden in der Regel in verschiedene Gerätegruppen eingeteilt – wie Tastaturen, Mäuse, Videogeräte und so weiter. Diese werden mit dem Klassen-Treiber des Betriebssystems unterstützt. Viele davon sind auch über dieWebHID API im Web zugänglich.
Zusätzlich zu diesen standardisierten Geräten gibt es eine Vielzahl von Geräten, die in keine Klasse passen. Diese benötigen benutzerdefinierte Treiber und sind aufgrund des erforderlichen nativen Codes nicht im Web zugänglich. Die Installation eines solchen Geräts erfordert häufig die Suche nach Treibern auf der Website des Herstellers, und wenn Sie das Gerät auf einem anderen Computer verwenden möchten, muss der Prozess wiederholt werden.
WebUSB bietet eine Möglichkeit, diese nicht standardisierten USB-Geräte-Dienste im Web verfügbar zu machen. Dies bedeutet, dass Hardware-Hersteller eine Möglichkeit bereitstellen können, ihre Geräte vom Web aus zugänglich zu machen, ohne ihre eigene API bereitstellen zu müssen.
Beim Anschließen eines neuen WebUSB-kompatiblen Geräts zeigt der Browser eine Benachrichtigung mit einem Link zur Website des Herstellers an. Beim Besuch der Website fordert der Browser die Erlaubnis an, sich mit dem Gerät zu verbinden, und dann ist das Gerät einsatzbereit. Es müssen keine Treiber heruntergeladen und installiert werden.
Schnittstellen
USBBietet Attribute und Methoden zum Auffinden und Herstellen von Verbindungen zu USB-Geräten von einer Webseite aus.
USBConnectionEventDer Ereignistyp, der an
USBconnectoderdisconnectEreignisse übergeben wird, wenn der Benutzeragent ein neues USB-Gerät erkennt, das verbunden oder vom Host getrennt wurde.USBDeviceBietet Zugriff auf Metadaten zu einem gekoppelten USB-Gerät und Methoden zur Steuerung desselben.
USBInTransferResultRepräsentiert das Ergebnis der Anforderung einer Datenübertragung vom USB-Gerät zum USB-Host.
USBOutTransferResultRepräsentiert das Ergebnis der Anforderung einer Datenübertragung vom USB-Host zum USB-Gerät.
USBIsochronousInTransferPacketRepräsentiert den Status eines einzelnen Pakets aus einer Anforderung zur Datenübertragung vom USB-Gerät zum USB-Host über einen isochronen Endpunkt.
USBIsochronousInTransferResultRepräsentiert das Ergebnis der Anforderung einer Datenübertragung vom USB-Gerät zum USB-Host.
USBIsochronousOutTransferPacketRepräsentiert den Status eines einzelnen Pakets aus einer Anforderung zur Datenübertragung vom USB-Host zum USB-Gerät über einen isochronen Endpunkt.
USBIsochronousOutTransferResultRepräsentiert das Ergebnis der Anforderung einer Datenübertragung vom USB-Host zum USB-Gerät.
USBConfigurationBietet Informationen über eine bestimmte Konfiguration eines USB-Geräts und die Schnittstellen, die es unterstützt.
USBInterfaceBietet Informationen über eine von dem USB-Gerät bereitgestellte Schnittstelle.
USBAlternateInterfaceBietet Informationen über eine bestimmte Konfiguration einer von dem USB-Gerät bereitgestellten Schnittstelle.
USBEndPointBietet Informationen über einen von dem USB-Gerät bereitgestellten Endpunkt.
Beispiele
>Zugriff auf ein verbundenes Gerät
Das folgende Beispiel zeigt, wie Sie auf ein verbundenes Arduino-Gerät zugreifen, dasUSB.requestDevice()](/de/docs/Web/API/USB/requestDevice) verwendet und einevendorId von0x2341 hat.
navigator.usb .requestDevice({ filters: [{ vendorId: 0x2341 }] }) .then((device) => { console.log(device.productName); // "Arduino Micro" console.log(device.manufacturerName); // "Arduino LLC" }) .catch((error) => { console.error(error); });Alle verbundenen Geräte finden
Sie können alle verbundenen Geräte mitUSB.getDevices() finden. Im folgenden Beispiel werden bei verbundenem Arduino-Gerät der Produkt- und Herstellername in die Konsole ausgegeben.
navigator.usb.getDevices().then((devices) => { devices.forEach((device) => { console.log(device.productName); // "Arduino Micro" console.log(device.manufacturerName); // "Arduino LLC" });});Spezifikationen
| Specification |
|---|
| WebUSB API> |