例項方法
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 |
瀏覽器相容性
載入中…