串口:requestPort() 方法

安全上下文:此功能仅在安全上下文(HTTPS)中可用,在某些或所有支持的浏览器中可用。

实验性:这是一个实验性技术
在生产环境中使用此功能之前,请仔细检查浏览器兼容性表

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 的浏览器中加载。