• 0
  • 0

处理 IOS APP下 扫描二维码无法识别结果的情况

2021-05-10 574 0 admin 所属分类:Hbuilder

可能是IOS 相机识别算法不够精准。导致识别出的结果部分被截断。因此 在IOS APP环境下特殊处理 为服务器请求解析。


PHP 端 引入 二维码解析库 qhQrCodeReader  


public function decodeQrcode() {
   require_once 'qhQrCodeReader/MGQrCodeReader/MGQrCodeReader.php';
   $MGQrCodeReader = new \MGQrCodeReader\MGQrCodeReader();
   $text = $MGQrCodeReader->read($_FILES['file']['tmp_name']); 
   if (!$text) {
      fail('无法识别该二维码数据');
   }
   // 考虑到 可能编码存在 非UTF8的文本 导致乱码 需要编码为 utf8格式 
   $code = strtolower(mb_detect_encoding($text,['UTF-8','GBK','GB2312']));
   if ($code!='utf-8') {
      $text = iconv('GB2312','UTF-8',$text);
   }
   succ($text);
}

uniapp 端

uni.chooseImage({
   sourceType:['camera'],
   success:(res)=>{
      console.log(res.tempFilePaths[0])
      app.uploadFile('decodeQrcode', res.tempFilePaths[0], (result)=>{
         console.log(result)
      }) 
   },
   fail:(res)=>{
      app.alert('选择图片异常');
   }
});


返回顶部