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的相机资源未正确释放导致的。建议检查以下几点:

  1. 确保在页面onUnload或onHide生命周期中正确处理扫码组件:
onUnload() {
  // 强制关闭扫码界面
  uni.hideLoading();
}
  1. 修改扫码调用方式,增加complete回调确保资源释放:
uni.scanCode({
  onlyFromCamera: false, // 允许相册选择
  success(res) {
    console.log('扫码结果:', res);
  },
  fail(err) {
    console.error('扫码失败:', err);
  },
  complete() {
    // 确保资源释放
  }
});
  1. 对于Android设备,可以尝试添加相机权限检查:
uni.authorize({
  scope: 'scope.camera',
  success() {
    // 授权成功后再调用扫码
    this.startScan();
  }
});
回到顶部