SerialPort: connected 属性
注意:此功能在 专用 Web Workers 中可用。
connected
属性是 SerialPort
接口的一个只读属性,它返回一个布尔值,指示端口是否 逻辑连接 到设备。
描述
当无线设备超出主机的范围时,Web 应用打开的任何无线串行端口都会自动关闭,即使它仍然保持逻辑连接。在这种情况下,Web 应用可以尝试使用 SerialPort.open()
重新打开端口。
但是,如果无线设备被有意断开(例如,用户通过操作系统控制面板选择断开连接),Web 应用应避免重新打开端口,以防止重新连接到无线设备。
以下代码片段显示了如何使用 connected
属性来区分这两种情况:
js
const ports = await navigator.serial.getPorts();
for (const port of ports) {
if (port.connected) {
// The port is logically connected
// automatically try to reopen the port
await port.open({ baudRate: 9600 });
} else {
// The port is not logically connected; at this point you could
// prompt the user to make sure the Bluetooth device is available, and
// Show a "connect" button to allow them to try opening the port if desired
}
}
值
一个布尔值 — 如果端口逻辑连接,则为 true
,否则为 false
。
示例
端口连接时进行日志记录
当用户按下 <button>
时,以下代码片段会调用 Serial.requestPort()
,提示他们选择一个串行端口进行连接,然后将连接状态的消息记录到控制台。
js
requestPortButton.addEventListener("click", async () => {
const port = await navigator.serial.requestPort();
console.log(`Requested serial port. Connected: ${port.connected}`);
});
连接和断开连接时记录连接状态
您可以使用以下代码片段在 connect
和 disconnect
事件触发时记录连接状态。
js
navigator.serial.addEventListener("connect", ({ target: port }) => {
console.log(`Connect event fired. Connected: ${port.connected}`);
});
navigator.serial.addEventListener("disconnect", ({ target: port }) => {
console.log(`Disconnect event fired. Connected: ${port.connected}`);
});
规范
规范 |
---|
Web Serial API # dom-serialport-connected |
浏览器兼容性
加载中…