Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android WebUSB API错误:设备已断开连接_Android_Google Chrome_Usb_Webusb - Fatal编程技术网

Android WebUSB API错误:设备已断开连接

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

我正在尝试使用WebUSB API通过网络与三星J7通信。 我目前正在使用以下基本代码:

<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域。