iOS:截至2013年,扫描条形码和QR码的最佳方法是什么?

时间:2013-11-08 16:11:04

标签: ios ios7 barcode qr-code

我在这个主题上找到了较旧的问题和答案。但我在iOS 7中收集了QR码的框架。它也支持条形码吗?如果我想支持早期的设备,那么现在被认为最好的库是什么?

1 个答案:

答案 0 :(得分:11)

iOS 7在AVCaptureMetadataOutput中引入了QR码和条形码阅读支持。它可以读取以下格式:

  • UPC-A
  • UPC-E
  • Code 39
  • Code 39 mod 43
  • Code 93
  • Code 128
  • EAN-8
  • EAN-13
  • 阿兹特克
  • PDF417
  • QR

要实现它,您需要将AVCaptureMetadataOutput与要扫描的对象类型添加到AVCaptureSession

AVCaptureMetadataOutput *metadataOutput= [[AVCaptureMetadataOutput alloc] init];
[self.session addOutput:metadataOutput];
[metadataOutput setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
[metadataOutput setMetadataObjectTypes:@[AVMetadataObjectTypeCode128Code]];

并实现以下委托方法:

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection

此处列出了您可以侦听的不同元数据对象: https://developer.apple.com/library/ios/DOCUMENTATION/AVFoundation/Reference/AVMetadataMachineReadableCodeObject_Class/Reference/Reference.html

以前版本的iOS的流行库是ZBar,虽然我知道很多用户在尝试使用iOS 7时遇到了ZBar的问题。但现在可能已经修复了。

http://zbar.sourceforge.net