我想做一个Chrome应用来接收打印请求。此应用程序需要通过USB连接到打印机,但是在重新启动PC时需要拔出/插入打印机才能访问它,为什么我需要拔出/插入打印机?
我正在Linux上工作,但我也在Windows上进行过尝试,甚至都没有出现。 (在三台不同的计算机上)
重新启动后,出现以下错误:
未选中的runtime.lastError:无法打开设备。
如果我拔掉插头就可以了。
我删除了一些检查以使其更具可读性
function printDataToDevice(data, device) {
chrome.usb.openDevice(device, function(handle) {
printDataToHandle(data, device, handle)
});
}
function printDataToHandle(data, device, handle) {
chrome.usb.claimInterface(handle, 0, function() {
printDataToInterface(data, device, handle);
});
}
function printDataToInterface(data, device, handle) {
if(!handle)
return;
var info = {
"direction": "out",
"endpoint": 1,
"data": data
};
chrome.usb.bulkTransfer(handle, info, function(transferResult) {
chrome.usb.releaseInterface(handle, 0, function() {
if (chrome.runtime.lastError)
console.error(chrome.runtime.lastError);
return;
});
});
}
In the app manisfest:
<pre> <code>
"permissions": ["usb","storage", {
"usbDevices": [
{
"vendorId": 1046,
"productId": 20497
}
]
}],
答案 0 :(得分:0)
通常在这种情况下,在尝试再次打开USB设备之前,没有正确清除以前使用USB设备的尝试。我会调试一下,以确保打印完成并在您期望的时候调用releaseInterface。
拔下设备插头会强制释放设备。