Android WebUSB API错误:设备已断开连接
我正在尝试使用WebUSB API通过网络与三星J7通信。 我目前正在使用以下基本代码:Android WebUSB API错误:设备已断开连接,android,google-chrome,usb,webusb,Android,Google Chrome,Usb,Webusb,我正在尝试使用WebUSB API通过网络与三星J7通信。 我目前正在使用以下基本代码: <body> <button onclick="myFunction()">Click me</button> <script> function myFunction() { console.log('Clicked'); var device; navigator.usb.re
<body>
<button onclick="myFunction()">Click me</button>
<script>
function myFunction() {
console.log('Clicked');
var device;
navigator.usb.requestDevice({ filters: [{ vendorId: 0x04e8 }] })
.then(selectedDevice => {
device = selectedDevice;
console.log('Deive Selected: ');
console.log(device.productName);
console.log(device.manufacturerName);
return device.open(); // Begin a session.
})
.catch(error => { console.log(error); });
}
</script>
</body>
点击我
函数myFunction(){
console.log('Clicked');
无功装置;
requestDevice({filters:[{vendorId:0x04e8}]})
。然后(选择设备=>{
设备=所选设备;
log('deve Selected:');
console.log(device.productName);
控制台.log(设备.manufacturerName);
return device.open();//开始会话。
})
.catch(错误=>{console.log(错误);});
}
device.open()
调用正在返回
DOMEException:设备已断开连接
我用Chrome在Windows和Ubuntu机器上测试了代码。两者的结果相同。有关问题原因的任何帮助?如果您还没有在本地托管您的网站,请尝试在本地托管。当使用
文件://
url访问我的测试页面时,我收到了相同的错误消息。本地托管文件并从http://
域访问它们为我解决了这个问题
本地托管文件的一种简单方法是从网站的根目录运行此命令:
python2-msimplehttpserver
。然后,您应该能够从域http://localhost:8000
解决方案非常有效!“我想知道你是否知道它为什么起作用,或者是什么让你这么做的?”MohamadAliMhaidly说,“我被卡住了,有人向我推荐了它。”。我不能100%确定为什么需要从托管站点运行。我最好的猜测是,它是从规范的早期版本继承下来的。在旧版本中,设备向浏览器提供了一组静态的受信任域。这些域只能是HTTP或HTTPS。在当前版本的规范中,低级USB请求只支持HTTP和HTTPS域。