requestDevice
无法从服务工作者那里调用,因为它必须显示权限提示UI(可能有解决方案,但他们引入了其他挑战,因此这就是当前不允许它的原因)。
对于您的用例,我认为您有两个选择:
在服务工作者中,您可以致电requestDevice()
以获取您的扩展程序有权访问的所有USB设备的列表。如果设备已经存在,则可以使用服务工作者在后台执行传输。如果不是,您需要致电
navigator.usb.getDevices()
以将文件传输到设备的一部分,以打开弹出窗口,并使用弹出窗口显示进度,除了需要偶尔的权限提示。
尽管一条评论的建议,屏幕外的文档可以致电
chrome.windows.create()