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参数配置不当。
问题分析:
-
关键问题:您的
scanType参数中包含了'datamatrix'(二维码的一种)和'barCode'(通用条形码),但没有明确指定'code128'。虽然'barCode'理论上应包含常见一维码,但在部分Android设备(特别是华为机型)上,底层扫码库对条码类型的支持可能存在差异,可能导致对code128的识别不灵敏或失败。 -
次要可能:您提供的图片链接无法直接访问,若条码印刷质量、对比度或手机摄像头对焦存在问题,也会导致无法识别。
解决方案:
首选方案:明确指定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'
});
}
});
备用方案:使用更宽泛的配置 如果明确指定后仍无效,可以尝试以下两种配置之一:
- 只使用
['barCode']:
scanType: ['barCode']
- 使用空数组或
null(由系统自动识别所有支持类型):
scanType: [] // 或直接移除 scanType 参数

