串口:requestPort() 方法
Serial.requestPort()
方法是 Serial
接口的方法,它返回一个Promise
,该 Promise 解析为一个表示用户选择的设备的 SerialPort
实例,或者如果未选择任何设备则拒绝。
语法
js
requestPort()
requestPort(options)
参数
options
-
具有以下属性的对象
filters
-
包含用于搜索已连接设备的供应商和产品 ID 的对象列表。USB 实现者论坛 为特定公司分配 ID。每家公司都会为其产品分配 ID。过滤器包含以下值
usbVendorId
-
标识 USB 设备供应商的无符号短整数。
usbProductId
-
标识 USB 设备的无符号短整数。
返回值
一个解析为 SerialPort
实例的Promise
。
异常
SecurityError
DOMException
-
如果权限策略阻止使用此功能或用户权限提示被拒绝,则返回的
Promise
将拒绝此错误。 NotFoundError
DOMException
-
如果用户在提示时未选择端口,则返回的
Promise
将拒绝此错误。
安全性
需要瞬态激活。用户必须与页面或 UI 元素进行交互才能使此功能正常工作。
示例
以下示例演示将过滤器传递给 requestPort()
,其中包含 USB 供应商 ID,以便将向用户显示的设备集限制为仅由特定制造商制造的 USB 设备。如果省略此过滤器,则用户将能够选择任何可用的端口。
js
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 # dom-serial-requestport |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。