Serial
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Note: This feature is available in Dedicated Web Workers.
Giao diện Serial của Web Serial API cung cấp các thuộc tính và phương thức để tìm và kết nối với cổng nối tiếp từ một trang web.
Phương thức thể hiện
Serial.requestPort()Experimental-
Trả về một
Promisephân giải thành một thể hiệnSerialPortđại diện cho thiết bị do người dùng chọn. Phương thức này phải được gọi thông qua kích hoạt tạm thời. Serial.getPorts()Experimental-
Trả về một
Promisephân giải thành một mảng các đối tượngSerialPortđại diện cho các cổng nối tiếp đã kết nối với máy chủ mà origin có quyền truy cập.
Sự kiện
Các sự kiện sau khả dụng với Serial thông qua việc lan truyền sự kiện từ SerialPort:
- Sự kiện
connectcủaSerialPort -
Sự kiện được phát ra khi một cổng đã được kết nối với thiết bị.
- Sự kiện
disconnectcủaSerialPort -
Sự kiện được phát ra khi một cổng đã bị ngắt kết nối khỏi thiết bị.
Ví dụ
Ví dụ sau cho thấy cách một trang web có thể kiểm tra các cổng khả dụng và cho phép người dùng cấp quyền truy cập vào các cổng bổ sung.
Khi tải trang, các trình nghe sự kiện được thêm cho các sự kiện connect và disconnect để trang web có thể phản ứng khi một thiết bị được kết nối hoặc ngắt kết nối khỏi hệ thống. Sau đó phương thức getPorts() được gọi để xem những cổng nào đang được kết nối mà trang web đã có quyền truy cập.
Nếu trang web không có quyền truy cập vào bất kỳ cổng nào đang kết nối, nó phải đợi đến khi có kích hoạt từ người dùng mới tiếp tục được. Trong ví dụ này, chúng ta dùng một trình xử lý sự kiện click trên một nút cho nhiệm vụ này. Một bộ lọc được truyền vào requestPort() với một mã nhà cung cấp USB để giới hạn tập thiết bị hiển thị cho người dùng chỉ còn các thiết bị USB do một nhà sản xuất cụ thể tạo ra.
navigator.serial.addEventListener("connect", (e) => {
// Kết nối với `e.target` hoặc thêm nó vào danh sách các cổng khả dụng.
});
navigator.serial.addEventListener("disconnect", (e) => {
// Xóa `e.target` khỏi danh sách các cổng khả dụng.
});
navigator.serial.getPorts().then((ports) => {
// Khởi tạo danh sách các cổng khả dụng bằng `ports` khi trang tải.
});
button.addEventListener("click", () => {
const usbVendorId = 0xabcd;
navigator.serial
.requestPort({ filters: [{ usbVendorId }] })
.then((port) => {
// Kết nối với `port` hoặc thêm nó vào danh sách các cổng khả dụng.
})
.catch((e) => {
// Người dùng không chọn cổng nào.
});
});
Thông số kỹ thuật
| Specification |
|---|
| Web Serial API> # serial-interface> |