uni-app code128扫码无反应

uni-app code128扫码无反应

示例代码:

uni.scanCode({
// onlyFromCamera:true,
scanType: ['datamatrix','barCode'],
success: (res) => {
this.result = res.result;
console.log(res.scanType);
uni.showToast({
title: this.result,
});
//关闭当前页面跳转
// uni.redirectTo({
//     url: '../upload-file/upload-file?SN='+this.result,
// });
//保留当前页面跳转
uni.navigateTo({
url:'../upload-file/upload-file?SN='+this.result,
})
}
})

操作步骤:

  • 打开扫码界面,对准条码

预期结果:

21980111053GM8000292

实际结果:

无反应

bug描述:

扫码格式为code128,扫码时一直没反应,图片为我要扫的码

扫码图片

信息类别 信息内容
产品分类 uniapp/App
PC开发环境 Windows
PC系统版本 win10 企业版
HBuilderX类型 正式
HBuilderX版本 3.2.1
手机系统 Android
手机系统版本 Android 9.0
手机厂商 华为
手机机型 华为mate40E
页面类型 vue
打包方式 云端
项目创建方式 HBuilderX

更多关于uni-app code128扫码无反应的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app code128扫码无反应的实战教程也可以访问 https://www.itying.com/category-93-b0.html


根据您提供的信息,这是一个典型的条码扫描兼容性问题。主要原因在于scanType参数配置不当。

问题分析:

  1. 关键问题:您的scanType参数中包含了'datamatrix'(二维码的一种)和'barCode'(通用条形码),但没有明确指定'code128'。虽然'barCode'理论上应包含常见一维码,但在部分Android设备(特别是华为机型)上,底层扫码库对条码类型的支持可能存在差异,可能导致对code128的识别不灵敏或失败。

  2. 次要可能:您提供的图片链接无法直接访问,若条码印刷质量、对比度或手机摄像头对焦存在问题,也会导致无法识别。

解决方案:

首选方案:明确指定code128类型scanType参数修改为明确包含'code128',并移除可能干扰的类型,优先使用一维码类型。

uni.scanCode({
    scanType: ['code128', 'ean13', 'ean8', 'upc', 'codabar'], // 明确列出需要的一维码类型
    success: (res) => {
        console.log('扫描结果:', res.result);
        console.log('扫描类型:', res.scanType);
        this.result = res.result;
        uni.showToast({
            title: '扫描成功',
        });
        uni.navigateTo({
            url:'../upload-file/upload-file?SN=' + this.result,
        });
    },
    fail: (err) => {
        console.error('扫描失败:', err);
        uni.showToast({
            title: '扫描失败,请重试',
            icon: 'none'
        });
    }
});

备用方案:使用更宽泛的配置 如果明确指定后仍无效,可以尝试以下两种配置之一:

  1. 只使用['barCode']
scanType: ['barCode']
  1. 使用空数组或null(由系统自动识别所有支持类型):
scanType: [] // 或直接移除 scanType 参数
回到顶部