串口
注意:此功能在专用 Web 工作线程中可用。
Serial
接口是 Web 串口 API 的一部分,它提供了用于从网页查找和连接到串行端口的属性和方法。
实例方法
Serial.requestPort()
实验性-
返回一个
Promise
,该 Promise 解析为一个SerialPort
实例,该实例表示用户选择的设备,或者如果未选择任何设备则拒绝。此方法必须在用户激活后调用。
Serial.getPorts()
实验性-
返回一个
Promise
,该 Promise 解析为一个SerialPort
对象数组,这些对象表示连接到主机且源具有访问权限的串行端口。
事件
以下事件可通过来自SerialPort
的事件冒泡在Serial
中使用
SerialPort
connect
事件-
端口已连接到设备时触发的事件。
SerialPort
disconnect
事件-
端口已断开连接到设备时触发的事件。
示例
以下示例显示了站点如何检查可用端口并允许用户授予其访问其他端口的权限。
加载事件监听器会为connect
和disconnect
事件添加,以便站点可以在设备连接或断开连接到系统时做出反应。getPorts()
方法随后被调用以查看站点已拥有访问权限的哪些端口已连接。
如果站点无法访问任何已连接的端口,则它必须等到获得用户激活后才能继续。在此示例中,我们使用按钮上的click
事件处理程序来执行此任务。将过滤器传递给requestPort()
,其中包含 USB 供应商 ID,以便将显示给用户的设备集限制为仅特定制造商构建的 USB 设备。
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.
});
});
规范
规范 |
---|
Web 串口 API # serial-interface |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。