检测 JavaScript 浏览器中 USB 设备是否插入

3

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


3
简短回答:不行。这将会是黑客的梦想。 - Rhumborl
不,浏览器不会公开关于所在机器的这种信息。 - DLeh
2个回答

6
出于安全原因,Web浏览器中的JavaScript只提供对计算机资源的有限访问权限。无法将文件存储在任意文件夹中,启动应用程序或与USB设备进行通信。
但是也有一些例外情况:

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}`
    );
  });
});

chrome.usb API只能用于Chrome网络应用程序吗? - Aziz
是的,这个API能够在应用程序的上下文中提供对USB操作的访问权限。 - Alexander

2
您的 JavaScript 代码是沙盒化的,因此无法访问系统资源,如 USB 设备。
我认为唯一访问 USB 设备的方法是编写浏览器插件。 如何从浏览器获取 USB 设备列表

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接