QR码阅读器为iPhone
我想创build基于QR码阅读器的应用程序。
使用哪个库,我可以创build我的应用程序?
注:我在谷歌search。 总是我得到zxing 。 我下载了zxing项目。 但问题是, 我运行该应用程序。 但它只读条码 。 没有select阅读QR码。
请告诉我如何做到这一点…
提前致谢。
ZBarSDK是另一种select。 一个非常有能力的库。
更新 2014年1月
从iOS7开始, AVCaptureDevice
现在可以读取各种条形码并返回一个可读的值。 如果你的目标是iOS7 +,这是一条路。 当然,ZBarSDK对于iOS7之前的支持仍然很棒。
AVCaptureMetaDataOutput
– 从iOS 7开始
使用iOS 7新增的AVCaptureMetaDataOutput扫描所有types的UPC,QR码和条形码。您只需将其设置为AVCaptureSession
的输出,然后相应地实现captureOutput:didOutputMetadataObjects:fromConnection:
方法:
@import AVFoundation; AVCaptureSession *session = [[AVCaptureSession alloc] init]; AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; NSError *error = nil; AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error]; if (input) { [session addInput:input]; } else { NSLog(@"Error: %@", error); } AVCaptureMetadataOutput *output = [[AVCaptureMetadataOutput alloc] init]; [output setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]]; [output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()]; [session addOutput:output]; [session startRunning]; #pragma mark - AVCaptureMetadataOutputObjectsDelegate - (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection { NSString *QRCode = nil; for (AVMetadataObject *metadata in metadataObjects) { if ([metadata.type isEqualToString:AVMetadataObjectTypeQRCode]) { // This will never happen; nobody has ever scanned a QR code... ever QRCode = [(AVMetadataMachineReadableCodeObject *)metadata stringValue]; break; } } NSLog(@"QR Code: %@", QRCode); }
AVFoundation
支持你听说过的每一个代码(可能还有一些你没有的代码):
AVMetadataObjectTypeUPCECode AVMetadataObjectTypeCode39Code AVMetadataObjectTypeCode39Mod43Code AVMetadataObjectTypeEAN13Code AVMetadataObjectTypeEAN8Code AVMetadataObjectTypeCode93Code AVMetadataObjectTypeCode128Code AVMetadataObjectTypePDF417Code AVMetadataObjectTypeQRCode AVMetadataObjectTypeAztecCode
尝试ZXingObjC工作很好,易于集成。
同样,您可以在视图中定义扫描仪窗口的大小。
为了您的参考,您可以使用webqr.com ,它也可以用来解码QR码和编码的库。 但是对于safari,Chrome,IE,Firefox等不同的浏览器,您可以为此添加插件。 希望这样会对你有帮助。