从浏览器中检测 USB 设备是否已插入 Javascript

Azi*_*ziz 3 javascript browser google-chrome

是否有基于 Javascript 的机制,我可以通过浏览器检测用户是否插入了特定的 USB 设备?

Ale*_*der 6

出于安全原因,Web 浏览器中的 JavaScript 仅提供对计算机资源的受限访问。无法文件存储在任意文件夹中、启动应用程序或与USB设备通信。

但也有一些例外:

  • 在 IE6 ~ IE8 等旧版浏览器中,您可以使用 ActiveX 对象或 Java 小程序来实现此目的。
  • 使用chrome.usb API 。
  • 使用NPAPI编写一个浏览器插件,(虽然时间不长

2023 编辑

WebUSB API的 USB 接口提供了从网页查找和连接 USB 设备的属性和方法。

(浏览器支持仍然有限,更多信息请参阅浏览器兼容性表)

示例代码:

navigator.usb.getDevices().then((devices) => {
  console.log(`Total devices: ${devices.length}`);
  devices.forEach((device) => {
    console.log(
      `Product name: ${device.productName}, serial number ${device.serialNumber}`
    );
  });
});
Run Code Online (Sandbox Code Playgroud)