You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用navigator.usb的open()时遇Access denied错误,求解决方法

解决DYMO M25邮政秤Web USB连接"Access denied"问题的思路
  • 检查设备USB权限与Web USB兼容性
    NodeJS的usb模块直接调用底层USB接口,权限不受浏览器安全模型限制,但Web USB受Chrome的权限管控。部分设备的驱动会独占USB接口,阻止浏览器访问:

    • 查看Chrome设备日志:打开chrome://device-log/,查看设备连接时的详细错误信息,排查是否存在驱动冲突或接口占用问题。
  • 精准指定设备过滤器
    原代码使用空过滤器filters: []可能导致权限匹配模糊,建议通过NodeJS的usb模块获取DYMO M25的vendorId和productId,然后在请求设备时精准匹配:

    // 先通过NodeJS获取设备的vendorId和productId
    // const usb = require('usb');
    // const targetDevice = usb.getDeviceList().find(dev => dev.deviceDescriptor.idVendor === 0xXXXX && dev.deviceDescriptor.idProduct === 0xXXXX);
    okButton.onclick = async () => {
      try {
        const device = await navigator.usb.requestDevice({ 
          filters: [{ vendorId: 0xXXXX, productId: 0xXXXX }] // 替换为实际的ID值
        });
        await device.open();
      } catch (err) {
        console.error(err);
      }
    }
    
  • 释放设备占用进程
    关闭所有可能访问DYMO M25的程序(比如DYMO官方软件、NodeJS测试脚本),确保设备接口未被其他进程占用,再尝试Web USB连接。

  • 重置设备并清除权限缓存

    • 打开chrome://usb-internals/,找到目标设备后点击"Reset Device",重置设备状态。
    • 打开chrome://settings/content/usbDevices,删除该设备的权限记录,重新发起连接请求,避免旧权限缓存导致的问题。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 15:25:34