uni-app uni.scanCode扫码个别安卓手机有时候会出现结果与二维码不一致

uni-app uni.scanCode扫码个别安卓手机有时候会出现结果与二维码不一致

示例代码:

调用该方法去使用 uni.scanCode进行扫码,代码示例如下:

testFn() {
    return new Promise((resolve, reject) => {
        uni.scanCode({
            onlyFromCamera: true,
            success: function(res) {
                //去除空格
                let space_str = '\u0000'
                let code = res.result.replace(space_str, "")
                res.result = code
                resolve(res)
            },
            fail() {
                reject('APP 扫码失败')
            },
            complete() {
                console.log("APP 扫码结束,无论失败还是成功都会回调");
            }
        })
    })
},

操作步骤:

  1. 扫qr二维码内容为73220251015_40
  2. 返回其他结果,后台已经抛出异常的扫码结果

预期结果:

扫码结果应该和内容一致

实际结果:

有时扫码结果应该和内容不一致

bug描述:

  1. 安卓手机,使用uni.scanCode去扫码,二维码扫出来的结果有时候会和码内容不一致,且是随机出现,有时候概率过高
  2. 二维码是qr码,已经试过 分辨率调整 和 二维码校验格式由最低改为最强,都没用
  3. 二维码附件在下面哈,二维码正确内容是批次号对应的:73220251015_40
信息类别 信息详情
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 10
HBuilderX 正式
HBuilderX版本 4.57
手机系统 Android
手机系统版本 Android 16
手机厂商 oppo、vivo、华为、红米
手机机型 oppo find x8、nova 7 、红米K70以及其他个别机型
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

qr码.pdf


更多关于uni-app uni.scanCode扫码个别安卓手机有时候会出现结果与二维码不一致的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

视频里的二维码比较模糊,如果可以修改二维码,你可以调整尺寸、条纹宽度,你的二维码看着非常的黑,不容易分辨。如果默认的 scancode 不满足要求,你可以看 scancode 的备注,使用 uts 三方扫码插件
https://uniapp.dcloud.net.cn/api/system/barcode.html#scancode 看最下面的 tips

更多关于uni-app uni.scanCode扫码个别安卓手机有时候会出现结果与二维码不一致的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个已知的uni-app扫码组件在部分安卓设备上的兼容性问题。从代码来看,你已正确处理了空字符过滤,但问题可能更深层。

问题分析:

  1. 设备硬件差异:不同厂商的摄像头模块和解码算法存在差异,可能导致解析错误
  2. 光线干扰:扫描时的环境光线、角度可能影响识别准确率
  3. 二维码复杂度:简单的数字+下划线组合在某些算法中容易误识别

建议解决方案:

立即缓解措施:

success: function(res) {
    // 增强过滤,处理多种异常字符
    let code = res.result.replace(/[\u0000\s]/g, "");
    // 添加结果验证
    if (!/^\d+_\d+$/.test(code)) {
        // 不符合预期格式,可重新扫描或提示用户
        reject('扫码结果格式异常');
        return;
    }
    resolve({result: code});
}
回到顶部