Web serial
The serial read-only property of the Navigator interface returns a Serial object, which represents the entry point into the Web Serial API.
The same instance of the Serial object will always be returned.
Browser support
| Feature | Desktop | Mobile | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
serial Experimental | 89 | 89 | | | 138 | |
| HTML attribute | ||||||
allow (serial) Experimental | 89 | 89 | | | 89 | |
| DOM API | ||||||
Serial Experimental The Serial interface of the Web Serial API provides attributes and methods for finding and connecting to serial ports from a web page. | 89 | 89 | | | 138 | |
getPorts Experimental The getPorts() method of the Serial interface returns a Promise that resolves with an array of SerialPort objects representing serial ports connected to the host which the origin has permission to access. | 89 | 89 | | | 138 | |
requestPort Experimental The Serial.requestPort() method of the Serial interface presents the user with a dialog asking them to select a serial device to connect to. It returns a Promise that resolves with an instance of SerialPort representing the device chosen by the user. | 89 | 89 | | | 138 | |
requestPort (allowedBluetoothServiceClassIds option) Experimental `allowedBluetoothServiceClassIds` option | 117 | 117 | | | 138 | |
requestPort (filters bluetoothServiceClassId) Experimental `filters` `bluetoothServiceClassId` property | 117 | 117 | | | 138 | |
SerialPort Experimental The SerialPort interface of the Web Serial API provides access to a serial port on the host device. | 89 | 89 | | | 138 | |
close Experimental The SerialPort.close() method of the SerialPort interface returns a Promise that resolves when the port closes. | 89 | 89 | | | 138 | |
connect_event Experimental The connect event of the SerialPort interface is fired when the port connects to the device. | 89 | 89 | | | 138 | |
connect_event (bluetooth rfcomm) Experimental Bluetooth RFCOMM serial ports dispatch `connect` events | 130 | 130 | | | 138 | |
connected Experimental The connected read-only property of the SerialPort interface returns a boolean value that indicates whether the port is logically connected to the device. | 130 | 130 | | | 138 | |
disconnect_event Experimental The disconnect event of the SerialPort interface is fired when the port disconnects from the device. | 89 | 89 | | | 138 | |
disconnect_event (bluetooth rfcomm) Experimental Bluetooth RFCOMM serial ports dispatch `disconnect` events | 130 | 130 | | | 138 | |
forget Experimental The SerialPort.forget() method of the SerialPort interface returns a Promise that resolves when access to the serial port is revoked. | 103 | 103 | | | 138 | |
getInfo Experimental The getInfo() method of the SerialPort interface returns an object containing identifying information for the device available via the port. | 89 | 89 | | | 138 | |
getInfo (bluetoothServiceClassId) Experimental `bluetoothServiceClassId` return value property | 117 | 117 | | | 138 | |
getSignals Experimental The SerialPort.getSignals() method of the SerialPort interface returns a Promise that resolves with an object containing the current state of the port's control signals. | 89 | 89 | | | 138 | |
open Experimental The open() method of the SerialPort interface returns a Promise that resolves when the port is opened. By default the port is opened with 8 data bits, 1 stop bit and no parity checking. The baudRate parameter is required. | 89 | 89 | | | 138 | |
readable Experimental The readable read-only property of the SerialPort interface returns a ReadableStream for receiving data from the device connected to the port. Chunks read from this stream are instances of Uint8Array. This property is non-null as long as the port is open and has not encountered a fatal error. | 89 | 89 | | | 138 | |
setSignals Experimental The setSignals() method of the SerialPort interface sets control signals on the port and returns a Promise that resolves when they are set. | 89 | 89 | | | 138 | |
writable Experimental The writable read-only property of the SerialPort interface returns a WritableStream for sending data to the device connected to the port. Chunks written to this stream must be instances of ArrayBuffer, TypedArray, or DataView. This property is non-null as long as the port is open and has not encountered a fatal error. | 89 | 89 | | | 138 | |
serial Experimental The serial read-only property of the WorkerNavigator interface returns a Serial object which represents the entry point into the Web Serial API. | 89 | 89 | | | 138 | |
| Other | ||||||
serial Experimental The HTTP Permissions-Policy header serial directive controls whether the current document is allowed to use the Web Serial API to communicate with serial devices, either directly connected via a serial port, or via USB or Bluetooth devices emulating a serial port. | 89 | 89 | | | 89 | |
- This browser only partially implements this feature
- Serial ports are only available if they're provided by Bluetooth RFCOMM serial port emulation.
- This browser only partially implements this feature
- Serial ports are only available if they're provided by Bluetooth RFCOMM serial port emulation.
- This browser only partially implements this feature
- Serial ports are only available if they're provided by Bluetooth RFCOMM serial port emulation.
- This browser only partially implements this feature
- Serial ports are only available if they're provided by Bluetooth RFCOMM serial port emulation.
Use cases
-
Using Web serial
The serial read-only property of the Navigator interface returns a Serial object, which represents the entry point into the Web Serial API.
Cautions
- Limited browser support. Check compatibility before use.
Implementation notes
- Some APIs require a secure context (HTTPS) or user activation. Check the requirements before use.