我正在Windows 10上使用Chrome浏览器v72.0.3626.109(正式版本)(32位)。
试图声明一个供应商特定的复合USB设备的USB接口,该设备具有一个供应商特定的接口和另一个加载winusb驱动程序的DFU运行时接口。 我已确保尚未加载供应商特定的驱动程序
通过webUSB API device.open()打开设备失败,代码为18(安全错误:访问被拒绝。)
document.addEventListener('DOMContentLoaded', event => {
let button = document.getElementById('connect')
button.addEventListener('click', async() => {
let device
const VENDOR_ID = 0x04xx
const PRODUCT_ID = 0x6xxx
try {
device = await navigator.usb.requestDevice({
filters: [{
vendorId: VENDOR_ID,
productId: PRODUCT_ID
}]
})
await device.open(); //Begin a session
await device.selectConfiguration(1);
await device.claimInterface(0);
await device.releaseInterface(0);
await device.close();
} catch (error) {
console.log(error)
}
await device.close()
})
})
我尝试过的其他方案...
我的USB设备仅配备1个接口(供应商特定的批量接口),而未加载驱动程序。该设备未在由requestDevice打开的设备选择菜单中列出。
我的USB设备仅带有1个接口(DFU运行时接口),并装有winusb驱动程序。设备被列出,打开并声明接口可以使用webUSB API正常工作。
使用webUSB API列出和打开供应商特定的USB设备是否受到限制?我有什么想念的吗?
答案 0 :(得分:0)
可以使用WebUSB打开特定于供应商的界面,但需要针对该界面加载WinUSB驱动程序。浏览器用来打开设备的Windows API对此有要求。