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.
Instanzmethoden
Serial.requestPort()
Experimentell-
Gibt ein
Promise
zurück, das mit einer Instanz vonSerialPort
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 vonSerialPort
-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.
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