我试图在angular-4 dart web应用程序中使用DART的chrome.usb API。 但由于_usb为null,它不断抛出异常。
if (_usb == null) _throwNotAvailable();
作为一种解决方法,我在javascript库周围编写了一个DART包装器(受arduino webusb demo启发)。这有效。同样以chrome-app device-info为例,我能够与USB设备端点进行通信;但是,该示例不是用DART编写的。
但是,我很困惑为什么使用DART的chrome.usb,它不起作用。我宁愿使用现有的chrome.usb API来重新发明轮子。
阅读某些网站,他们指出chrome.usb仅限于网络应用程序或扩展,需要manifest.json文件才能获得适当的权限(我尝试了清单文件但没有成功)。 不确定我是否误解了这些网站(因为我认为使用Angular-dart编写SPA前端被认为是一个Web应用程序),再加上在javascript库周围使用DART包装器时,它运行正常。
欢迎任何建议。
答案 0 :(得分:1)
chrome.usb和WebUSB是两种不同的API。 chrome.usb仅适用于Chrome应用,已弃用。 WebUSB可在任何网页上使用(只要通过HTTPS提供)。如果您使用的Dart包装器仅支持调用chrome.usb API,那么您将需要编写一个调用WebUSB API的新包装。