Попытка чтения USB-сканера штрих-кода на MacOS 10.14.1
в версии Google Chrome 71.0.3578.98
через WebUSB.
Использование сканера штрих-кода: https://www.ebay.co.uk/itm/Barcode-Scanner-USB-Handheld-Wired-Portable-Laser-Scan-Bar-Code-Reader-Scan-POS/282865082953
Устройство отображается в запросе устройствадиалоговое окно отображается как Usb211
и открывается успешно, код, который я использовал для этого здесь:
const VENDOR_ID = 0x8888
navigator.usb.requestDevice({ filters: [{ vendorId: VENDOR_ID }] })
.then(selectedDevice => {
device = selectedDevice;
return device.open();
})
.then(() => device.selectConfiguration(1))
.then(() => device.claimInterface(device.configuration.interfaces[0].interfaceNumber)) # interfaceNumber is 0
.catch(error => { console.log(error); });
Когда я попытался claimInterface(0)
(который является единственным интерфейсом, доступным в объекте device
, он завершается неудачно сошибка An attempt to claim a USB device interface has been blocked because it implements a protected interface class.
(или SecurityError
DOMException The requested interface implements a protected class.
) - это ожидается из-за недавних изменений: https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/LZXocaeCwDw/GLfAffGLAAAJ
Есть ли способ как-то "отладить глубже", потому что я не вижу путииспользовать только доступный интерфейс.
Спасибо!