Здравствуйте, я пытаюсь получить доступ к USB-флешке из электронного приложения, написанного на reactjs.
Поскольку электрон - это хром Google, я подумал, что могу использовать USB Web-Api: https://developer.mozilla.org/en-US/docs/Web/API/USB
Поэтому я создал такой компонент:
import React from 'react';
const UsbAccessButton = () => (
<button
className="usb-access-button"
onClick={() => {
navigator.usb
.requestDevice({ filters: [{ vendorId: 0x0951 }] })
.then(device => {
console.log(device.productName);
console.log(device.manufacturerName);
})
.catch(error => {
console.log(error);
});
}}
>
Get USB Access
</button>
);
export default UsbAccessButton;
Идентификатор vendorId правильный для моей спецификации c USB-накопитель. Но когда я нажимаю на кнопку, я получаю сообщение об ошибке:
DOMException: No device selected. usb-access-button.component.jsx:14
Но я хочу перечислить доступные устройства, чтобы пользователь мог выбирать между ними. Поэтому, может быть, я не понял некоторые части документации или что вызывает проблемы здесь?
ОБНОВЛЕНИЕ: Когда я запускаю это приложение в своем браузере по умолчанию chrome, я получаю диалог для выбора между USB-устройствами. Похоже, эта ошибка больше связана с самим электроном.