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 扫码结束,无论失败还是成功都会回调");
}
})
})
},
操作步骤:
- 扫qr二维码内容为73220251015_40
- 返回其他结果,后台已经抛出异常的扫码结果
预期结果:
扫码结果应该和内容一致
实际结果:
有时扫码结果应该和内容不一致
bug描述:
- 安卓手机,使用uni.scanCode去扫码,二维码扫出来的结果有时候会和码内容不一致,且是随机出现,有时候概率过高
- 二维码是qr码,已经试过 分辨率调整 和 二维码校验格式由最低改为最强,都没用
- 二维码附件在下面哈,二维码正确内容是批次号对应的: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 |
更多关于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扫码组件在部分安卓设备上的兼容性问题。从代码来看,你已正确处理了空字符过滤,但问题可能更深层。
问题分析:
- 设备硬件差异:不同厂商的摄像头模块和解码算法存在差异,可能导致解析错误
- 光线干扰:扫描时的环境光线、角度可能影响识别准确率
- 二维码复杂度:简单的数字+下划线组合在某些算法中容易误识别
建议解决方案:
立即缓解措施:
success: function(res) {
// 增强过滤,处理多种异常字符
let code = res.result.replace(/[\u0000\s]/g, "");
// 添加结果验证
if (!/^\d+_\d+$/.test(code)) {
// 不符合预期格式,可重新扫描或提示用户
reject('扫码结果格式异常');
return;
}
resolve({result: code});
}

