【问题标题】:How to access USB device in chrome?如何在 Chrome 中访问 USB 设备?
【发布时间】:2016-06-08 17:26:32
【问题描述】:

我需要一个用于从 USB 驱动器复制文件的 Web 应用程序。我可以编写一个 java 小程序来从 USB 驱动器复制文件,但 chrome 将不再支持小程序。你能建议任何替代方案吗? 我需要一个 Web 应用程序而不是 chrome 应用程序。

【问题讨论】:

  • Web 应用程序无权访问文件系统。您无法从浏览器绑定的应用程序中复制文件,但浏览器扩展可能除外。
  • 我可以添加一个小程序,它会授予我从 USB 驱动器读取和写入的权限,但 chrome 不再支持小程序。那么有什么替代方法吗?我可以使用 webstart 吗?
  • 不,Web Start 使用相同的东西。简而言之,再也不可能从 Chrome 内部直接访问用户机器了。您需要让用户安装扩展程序或其他一些外部程序。
  • 根据oracle,它仍然支持webstart。 java.com/en/download/faq/chrome.xml。 .此更改不会影响 Web Start 应用程序,它只会影响小程序。不是真的吗?

标签: javascript java google-chrome applet


【解决方案1】:

我推荐使用 node.js ,它的跨平台并且可以从网络浏览器访问 USB 端口..

Usb 库: https://www.npmjs.com/package/usb

证明: How to send data to USB device in node.js using libusb

希望对你有帮助

【讨论】:

  • 这意味着在用户的计算机上运行 node.js 服务器,我猜这不是 OP 想要的。
  • 是的,我将在服务器上运行 Web 应用程序。
  • 那么这对你来说是一个可能的解决方案
【解决方案2】:

Chrome 61+ 有一个 implementationWebUSB API

不会让您向操作系统/文件系统发出命令,例如:

file://some_file_location/myfile.txt复制到file://USB_DRIVE/some_folder/myfile.txt

Chrome 需要读取文件并直接写入设备。换句话说,浏览器将通过读取文件(见下文)复制文件,然后写入 USB 设备。对于大文件,这可能会非常缓慢且不可行。

您读取本地文件的选项是:

  • 使用--allow-file-access-from-files 标志运行chrome。这是一个安全问题/风险,用户需要访问您的站点/应用程序时已启用此功能。
  • 使用FileFileReader,或non-standard FileSystem API 以及input type="file" 或拖放

这些都可能不适用于您的问题/解决方案。

【讨论】:

    猜你喜欢
    • 2021-03-04
    • 1970-01-01
    • 2012-06-25
    • 2014-04-18
    • 1970-01-01
    • 2013-09-20
    • 2014-05-27
    • 1970-01-01
    • 2012-09-05
    相关资源
    最近更新 更多