Serial

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 Dedicated Web Workers.

Die Serial-Schnittstelle der Web Serial API bietet Attribute und Methoden zum Auffinden und Verbinden mit seriellen Anschlüssen von einer Webseite aus.

EventTarget Serial

Instanzmethoden

Serial.requestPort() Experimentell

Gibt ein Promise zurück, das mit einer Instanz von SerialPort aufgelöst wird, die das vom Benutzer ausgewählte Gerät darstellt, oder abgelehnt wird, wenn kein Gerät ausgewählt wurde.

Diese Methode muss mit Benutzeraktivierung aufgerufen werden.

Serial.getPorts() Experimentell

Gibt ein Promise zurück, das mit einem Array von SerialPort-Objekten aufgelöst wird, die serielle Anschlüsse darstellen, die mit dem Host verbunden sind und auf die der Ursprung zugreifen darf.

Ereignisse

Die folgenden Ereignisse sind für Serial über das Ereignisbubbling von SerialPort verfügbar:

SerialPort connect Ereignis

Ein Ereignis, das ausgelöst wird, wenn ein Anschluss mit dem Gerät verbunden wurde.

SerialPort disconnect Ereignis

Ein Ereignis, das ausgelöst wird, wenn ein Anschluss vom Gerät getrennt wurde.

Beispiele

Das folgende Beispiel zeigt, wie eine Webseite nach verfügbaren Anschlüssen suchen und dem Benutzer die Berechtigung erteilen kann, den Zugriff auf zusätzliche Anschlüsse zu gewähren.

Beim Laden werden Ereignis-Listener für die connect und disconnect Ereignisse hinzugefügt, damit die Webseite reagieren kann, wenn ein Gerät an das System angeschlossen oder davon getrennt wird. Die Methode getPorts() wird dann aufgerufen, um zu sehen, welche Anschlüsse verbunden sind, auf die die Webseite bereits zugreifen kann.

Wenn die Webseite auf keine verbundenen Anschlüsse zugreifen kann, muss sie warten, bis eine Benutzeraktivierung erfolgt. In diesem Beispiel verwenden wir einen click Ereignishandler auf einem Button für diese Aufgabe. Ein Filter wird an requestPort() mit einer USB-Hersteller-ID übergeben, um die Menge der dem Benutzer angezeigten Geräte auf nur USB-Geräte eines bestimmten Herstellers zu beschränken.

js
navigator.serial.addEventListener("connect", (e) => {
  // Connect to `e.target` or add it to a list of available ports.
});

navigator.serial.addEventListener("disconnect", (e) => {
  // Remove `e.target` from the list of available ports.
});

navigator.serial.getPorts().then((ports) => {
  // Initialize the list of available ports with `ports` on page load.
});

button.addEventListener("click", () => {
  const usbVendorId = 0xabcd;
  navigator.serial
    .requestPort({ filters: [{ usbVendorId }] })
    .then((port) => {
      // Connect to `port` or add it to the list of available ports.
    })
    .catch((e) => {
      // The user didn't select a port.
    });
});

Spezifikationen

Specification
Web Serial API
# serial-interface

Browser-Kompatibilität

BCD tables only load in the browser