Serial

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

Hinweis: Diese Funktion ist in Dedicated Web Workers verfügbar.

Das Serial-Interface der Web Serial API bietet Attribute und Methoden zum Auffinden und Verbinden mit seriellen Ports über eine Webseite.

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. Diese Methode muss über eine flüchtige Aktivierung aufgerufen werden.

Serial.getPorts() Experimentell

Gibt ein Promise zurück, das mit einem Array von SerialPort-Objekten aufgelöst wird, die serielle Ports darstellen, die mit dem Host verbunden sind, auf die der Ursprung Zugriff hat.

Ereignisse

Die folgenden Ereignisse sind für Serial über Event-Bubbling von SerialPort verfügbar:

SerialPort connect Ereignis

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

SerialPort disconnect Ereignis

Ein Ereignis, das ausgelöst wird, wenn ein Port von dem Gerät getrennt wurde.

Beispiele

Das folgende Beispiel zeigt, wie eine Seite verfügbare Ports prüfen und dem Benutzer die Erlaubnis geben kann, den Zugriff auf zusätzliche Ports zu gewähren.

Beim Laden der Seite werden Event-Listener für die connect- und disconnect-Ereignisse hinzugefügt, damit die Seite darauf reagieren kann, wenn ein Gerät mit dem System verbunden oder davon getrennt wird. Die Methode getPorts() wird dann aufgerufen, um zu sehen, welche Ports angeschlossen sind, auf die die Seite bereits Zugriff hat.

Wenn die Seite auf keine angeschlossenen Ports Zugriff hat, muss sie warten, bis sie über eine Benutzeraktivierung fortfahren kann. In diesem Beispiel verwenden wir einen click-Event-Handler auf einem Button für diese Aufgabe. Ein Filter wird an requestPort() mit einer USB-Hersteller-ID übergeben, um die Anzahl der Geräte, die dem Benutzer angezeigt werden, nur auf 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