Spec-Zone.ru › Web APIs

Последовательный порт

Ограниченная доступность

Эта функция не является базовой, так как она не работает в некоторых из самых широко используемых браузеров.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.

Экспериментально: Это экспериментальная технология
Перед использованием в производстве внимательно ознакомьтесь со таблицей совместимости браузеров.

Примечание: Эта функция доступна в посвященных веб-воркерах.

Интерфейс Serial API последовательного порта предоставляет атрибуты и методы для поиска и подключения к портам последовательного ввода-вывода из веб-страницы.

EventTarget Serial

Методы экземпляра

Serial.requestPort() Экспериментально

Возвращает Promise, который разрешается экземпляром SerialPort, представляющим выбранное пользователем устройство. Этот метод должен вызываться с помощью временного активирования.

Serial.getPorts() Экспериментально

Возвращает Promise, который разрешается массивом объектов SerialPort, представляющих порты последовательного ввода-вывода, подключенные к хосту, к которому у источника есть разрешение доступа.

События

Следующие события доступны Serial через распространение событий от SerialPort:

SerialPort connect событие

Событие, срабатывающее при подключении порта к устройству.

SerialPort disconnect событие

Событие, срабатывающее при отключении порта от устройства.

Примеры

Следующий пример демонстрирует, как сайт может проверить доступные порты и разрешить пользователю предоставить ему разрешение на доступ к дополнительным портам.

При загрузке добавляются обработчики событий для connect и disconnect событий, чтобы сайт мог реагировать при подключении или отключении устройства от системы. Затем вызывается метод getPorts(), чтобы определить, какие порты подключены, и к которым у сайта уже есть доступ.

Если у сайта нет доступа к подключенным портам, ему необходимо дождаться активации пользователя, чтобы продолжить. В этом примере мы используем обработчик события click на кнопке для этой задачи. В requestPort() передается фильтр с идентификатором поставщика USB, чтобы ограничить набор отображаемых пользователю устройств только USB-устройствами, произведенными определенным производителем.

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.
    });
});

Спецификации

Спецификация
API последовательного порта
# serial-interface

Совместимость браузеров

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari на iOS Samsung Internet WebView для Android
Serial 89 89 Нет 75 Нет Нет Нет Нет Нет Нет Нет
getPorts 89 89 Нет 75 Нет Нет Нет Нет Нет Нет Нет
requestPort 89 89 Нет 75 Нет Нет Нет Нет Нет Нет Нет

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Serial

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API