Ошибка класса защищенного интерфейса API WebUSB

Я пытаюсь использовать API WebUSB с Chrome 67. Следующий код работал месяц назад. Я не уверен, что что-то изменилось или я что-то упустил. Ошибка, которую я получаю сейчас, возникает, когда я пытаюсь потребовать интерфейс.

Сообщения об ошибках следующие: DOMException: The requested interface implements a protected class. и An attempt to claim a USB device interface has been blocked because it implements a protected interface class.

  window.setInterval(function() {
    navigator.usb.getDevices({ filters: [{ vendorId: 0x0b67 }]
    }).then(function(devices) {
      device = devices[0];
      return device.open();
    }).then(function() {
      return device.selectConfiguration(1);
    }).then(function() {
      return device.claimInterface(0);
    }).then(function() {
      return device.transferIn(1, 6);

Я не могу найти никакой информации об ошибке, я буду благодарен за любую информацию.


person Jon    schedule 29.05.2018    source источник


Ответы (1)


Я объявил об этом изменении здесь:

https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/LZXocaeCwDw/GLfAffGLAAAJ

person Reilly Grant    schedule 30.05.2018
comment
Так что это мешает моей цели подключить USB-устройство к приложению Javascript. Есть ли способ отключить эту проверку (например, скрытый параметр браузера или что-то еще)? Я понимаю проблемы безопасности, но это кажется деспотичным решением, которое делает множество полезных вещей невозможными. - person mtraven; 24.06.2018
comment
Я прочитал объявление, но все еще не могу решить проблему. Что мне делать, чтобы избежать появления этого сообщения об ошибке / предупреждении? заранее спасибо - person David Canós; 27.10.2018
comment
@ DavidCanós, я знаю, что это уже очень поздно, но для других отставших суть в том, что устройство больше не может использоваться с WebUSB в браузерах Chromium. - person mattliu; 20.11.2019
comment
Я только что столкнулся с этим ограничением, обидно. Мое устройство представляет собой ИК-камеру, совместимую с УФ-фильтром, которая использует канал масштабирования для управления функциями. Они не отображаются как поддерживаемые настройки в mediaDevices, и я надеялся вместо этого использовать WebUSB для управления ими. - person StephMW; 04.05.2021