uni-app uni.scanCode 扫码
uni-app uni.scanCode 扫码
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
PC | Windows 10 | HBuilderX |
手机 | Android 13 |
产品分类:uniapp/App
PC开发环境操作系统:Windows
HBuilderX类型:正式
HBuilderX版本号:3.8.7
手机系统:Android
手机系统版本号:Android 13
手机厂商:小米
手机机型:Redmi K50
页面类型:vue
vue版本:vue2
打包方式:云端
示例代码:
uni.scanCode({
success: function(res) {
console.log('条码类型:' + res.scanType);
console.log('条码内容:' + res.result.substring("codeId=", res.result.length));
}
});
操作步骤:
偶然:调用扫码功能 黑屏
必然:调用扫码快速点击相册 返回黑屏,然后重新调用扫码 还是黑屏
预期结果:
不会出现扫码黑屏的情况
实际结果:
uni.scanCode({
success: function(res) {
console.log('条码类型:' + res.scanType);
console.log('条码内容:' + res.result.substring("codeId=", res.result.length));
}
});
bug描述:
偶然:调用扫码功能 黑屏
必然:调用扫码快速点击相册 返回黑屏,然后重新调用扫码 还是黑屏
暂时解决方案:清除后台重新打开
更多关于uni-app uni.scanCode 扫码的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app uni.scanCode 扫码的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这个黑屏问题可能是由于uni.scanCode的相机资源未正确释放导致的。建议检查以下几点:
- 确保在页面onUnload或onHide生命周期中正确处理扫码组件:
onUnload() {
// 强制关闭扫码界面
uni.hideLoading();
}
- 修改扫码调用方式,增加complete回调确保资源释放:
uni.scanCode({
onlyFromCamera: false, // 允许相册选择
success(res) {
console.log('扫码结果:', res);
},
fail(err) {
console.error('扫码失败:', err);
},
complete() {
// 确保资源释放
}
});
- 对于Android设备,可以尝试添加相机权限检查:
uni.authorize({
scope: 'scope.camera',
success() {
// 授权成功后再调用扫码
this.startScan();
}
});