iOS 识别相册中的二维码或条形码

前言: 使用CIDetector这个类只能识别二维码图片,条形码目前暂不支持bash

能够经过使用ZBarSDK第三方来识别相册中的二维码或条形码ui

第一步: 导入SDK

pod 'ZBarSDK', '~> 1.3.1'
复制代码

第二步:

//打开相册
- (void)openPhoto {
   //ZBarsSDK初始化
   ZBarReaderController *imagePicker = ZBarReaderController.new;
   imagePicker.showsHelpOnFail = NO;//禁止显示读取失败页面
   imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
   imagePicker.delegate = self;
   imagePicker.allowsEditing = YES;
   [self presentViewController:imagePicker animated:YES completion:nil];
}

//选中图片后的处理
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<UIImagePickerControllerInfoKey, id> *)info {
   
   id<NSFastEnumeration> results = [info objectForKey:ZBarReaderControllerResults];

   ZBarSymbol *symbol = nil;

   for (symbol in results) {
       break;
   }
   
   [picker dismissViewControllerAnimated:YES completion:^{
       //扫码信息
       NSString *QRCodeString = symbol.data;
       NSLog(@"QRCodeString = %@",QRCodeString);
   }];
}

备注:若是想经过ZBarSDK来进行拍照识别二维码和条形码也能够,只需将 - (void)openPhoto;中的sourceType改成:
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
便可, 可是注意:这种方式是拍照识别,不是扫一扫识别;

复制代码

参考:www.jianshu.com/p/7917e28f7…spa

相关文章
相关标签/搜索