实例方法
Serial.requestPort()实验性-
返回一个
Promise,该 Promise 解析为一个SerialPort实例,代表用户选择的设备。此方法必须通过 瞬时激活 调用。 Serial.getPorts()实验性-
返回一个
Promise,该 Promise 解析为一个SerialPort对象数组,代表已连接到主机且来源具有访问权限的串行端口。
事件
以下事件可以通过从 SerialPort 冒泡的方式供 Serial 使用:
SerialPortconnect事件-
当端口已连接到设备时触发的事件。
SerialPortdisconnect事件-
当端口已与设备断开连接时触发的事件。
示例
以下示例展示了网站如何检查可用端口并允许用户授予其访问其他端口的权限。
在加载时,会为 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 Serial API # serial-interface |
浏览器兼容性
加载中…