#angular #webusb
#angular #webusb
Вопрос:
Мне нужно подключить устройство к браузеру с помощью WebUSB, после подключения я вызываю метод open, и эта ошибка падает «Uncaught (в обещании) DOMException: доступ запрещен.«. Как это исправить?
ngOnInit(): void {
const button = document.getElementById('connectButton');
button.addEventListener('click', async () => {
let device;
try {
device = await navigator.usb.requestDevice({ filters: []});
} catch (err) {
}
device.open()
.then(() => device.selectConfiguration(1))
.then(() => device.claimInterface(device.configuration.interfaces[0].interfaceNumber));
});
}
Ответ №1:
На какой платформе вы работаете?
В Linux вы получите эту ошибку, если у текущего пользователя нет разрешения на открытие USB-устройства. Вам нужно будет настроить правило udev, чтобы разрешить пользователю доступ к нему.
В Windows вы получите эту ошибку, если драйвер WinUSB не загружен для устройства. Вы можете использовать инструмент Zadig, чтобы заставить Windows загрузить определенный драйвер для устройства.
Сообщения об ошибках, отправляемые на сайт, намеренно расплывчаты. Проверьте chrome:// device-log, чтобы увидеть более подробную информацию об ошибке, с которой браузер столкнулся при попытке открыть устройство.