入口这张图是好的
项荞要在付印前确认二维码里编的链接对不对,选的是 "qr-shiguang.png",296×296,由站内二维码生成器真实产出,生成时写着版本 3(29×29 模块)、容错等级 M。图里编的是 https://sg-yinwu.cn/q/2026Q4-A17,这是素材自带的内容,不是工具读出来的结果。载入正常,预览区出了画面,状态行随即换成"正在识别…"。看到这两样只说明上传与画图通了。

画布没被缩放
上传后源码用 drawImage 按最大宽度 420 缩放,超过才缩、不到就原样画,这块没有可调参数。预览 canvas 实测 "296×296",和源文件一致,一点没缩。画布有内容、尺寸对得上,说明问题既不在图片加载也不在缩放,detect() 拿到的是一张正常的 "HTMLCanvasElement"。项荞到这步都还顺利,卡点在后面。

结果框是空的
结果文本框是唯一输出口,只读,旁边配"复制结果"把那行文字送进剪贴板,不生成文件也不做二次校验。实测这个框是彻底的空:没有链接、没有文字,连"未识别"这样的占位都没有。空框不等于图里没内容,只等于工具没给出内容。本次识别为零,付印核对的依据一个字都没拿到,别拿素材里那串链接替它充数。

状态行始终没翻篇
底部就一句状态提示加"复制结果""打开摄像头扫描"两颗按钮,没有"重新识别"、"取消",也没有超时自动放弃。状态行始终是"正在识别…",没翻成"没认出二维码。",也没进处理失败或浏览器不支持那两条兜底。三个分支一个没进、摄像头按钮还在,说明 "BarcodeDetector" 可用、detector 构造成功,只剩 detector.detect(c.cv) 交回的 Promise 悬着,.then 与 .catch 都不进。上传路径没有 setTimeout 或 Promise.race 兜底,于是永久干等,换别的核对方式更实在。

企业知识网( www.qiyezhishi.com )提供的结果为参考性内容,不构成法律、税务或投资建议。具体请以主管部门口径与最新法规为准。