Это сложная тема. Когда я пробовал работать с баркод-сканером то сделал такие выводы:
- устройство может работать в режиме клавиатуры (легкий вариант);
- устройство может работать в режиме usb-девайса (сложный вариант);
- в хроме есть usb api (еще есть hid api) для "общения" с устройствами usb, можно получать/отправлять данные на usb;
- в винде все плохо с дровами для устройства, тогда как в линуксе можно читать из "файлов". Не знаю как оно точно называется в линуксе, это по сути порты usb.
Api в хроме называется
chrome.usb. В нем нет интерфейсов по типу sendData и receiveData. Для работы нужно шарить как работает usb, как отправлять команды, его интерфейс. Там все не просто.