iOS开发——iOS7(及以后版本) SDK自带二维码(含条形码)扫码、二维码生成
2015-03-22 20:24
435 查看
现在很多APP都涉及了二维码扫码功能,这个功能简单实用,很多情况下用户乐于使用,现在本文带来iOS7自带二维码扫码的教程,也包括扫条形码,足以满足简单的扫码要求,而且避免使用第三方的繁琐。
后期项目中需要生成二维码,我在git上找到一个很方便使用的轻量级开源库,推荐给有需要的朋友:https://github.com/moqod/ios-qr-code-encoder
下面介绍如何使用iOS7后SDK自带扫码API。
首先,要引入AVFoundation框架:
然后完成扫码需要用的相关类的对象:
初始化:
实现代理AVCaptureMetadataOutputObjectsDelegate:
以上就iOS7以后SDK原生扫码,使用比较简单。
后期项目中需要生成二维码,我在git上找到一个很方便使用的轻量级开源库,推荐给有需要的朋友:https://github.com/moqod/ios-qr-code-encoder
下面介绍如何使用iOS7后SDK自带扫码API。
首先,要引入AVFoundation框架:
#import <AVFoundation/AVFoundation.h>
然后完成扫码需要用的相关类的对象:
@property (strong,nonatomic)AVCaptureDevice *device; @property (strong,nonatomic)AVCaptureDeviceInput *input; @property (strong,nonatomic)AVCaptureMetadataOutput *output; @property (strong,nonatomic)AVCaptureSession *session; @property (strong,nonatomic)AVCaptureVideoPreviewLayer *previewLayer;
初始化:
// Device _device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; // Input NSError *error = nil; _input = [AVCaptureDeviceInput deviceInputWithDevice:self.device error:&error]; if (error) { NSLog(@"初始化输入设备失败"); } // Output _output = [[AVCaptureMetadataOutput alloc] init]; [_output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()]; // Session _session = [[AVCaptureSession alloc] init]; [_session setSessionPreset:AVCaptureSessionPresetHigh]; // 添加输入输出 if ([_session canAddInput:self.input]) { [_session addInput:self.input]; } if ([_session canAddOutput:self.output]) { [_session addOutput:self.output]; } // 条码类型 AVMetadataObjectTypeQRCode 即二维码,如果需要扫描条形码,就要在这个数组里添加枚举,command点二维码枚举进去,就会看见其他的需要的条码类型,例如UPC,code39,code128等,酌情使用 _output.metadataObjectTypes =@[AVMetadataObjectTypeQRCode]; // Preview _previewLayer =[AVCaptureVideoPreviewLayer layerWithSession:self.session]; _previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; _previewLayer.frame = self.view.bounds; [self.view.layer insertSublayer:self.previewLayer atIndex:0]; 32 // 开始扫码 33 [_session startRunning];
实现代理AVCaptureMetadataOutputObjectsDelegate:
#pragma mark - AVCaptureMetadataOutputObjectsDelegate methods // 扫到码之后,会通过这个代理方法告知扫码结果 - (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection { NSString *stringValue = nil; if ([metadataObjects count] >0) { AVMetadataMachineReadableCodeObject * metadataObject = [metadataObjects objectAtIndex:0]; stringValue = metadataObject.stringValue; } // 扫码成功,停止扫码会话层活动 [_session stopRunning]; NSLog(@"%@",stringValue); }
以上就iOS7以后SDK原生扫码,使用比较简单。
相关文章推荐
- iOS开发——iOS7(及以后版本) SDK自带二维码(含条形码)扫码、二维码生成
- iOS开发--二维码/条形码(扫描(可区域)和生成)
- iOS 条形码 二维码 的生成 和 扫描 zBarSDK zXing
- iOS开发:使用苹果自带框架实现二维码和条形码扫描
- IOS开发使用原生框架,二维码(条形码)的生成与扫描(支持长按扫描),可控制闪光灯
- iOS开发中使用CIFilter生成二维码和条形码
- iOS开发——生成条形码,二维码
- iOS开发之二维码的生成
- iOS开发 自带二维码扫描(仅支持iOS7及以上系统)
- IOS 开发之_二维码生成与识别
- IOS开发技巧快速生成二维码
- iOS 自带二维码识别(识别二维码,条形码以及从相册中选择图片进行识别)
- IOS 开发笔记——二维码的生成和扫描
- iOS自带扫描 和 生成二维码
- Xcode 向6.0以后版本添加iOS开发空白模板
- iOS 开发 二维码生成大全(黑白/彩色二维码和带图片的二维码)详解
- 对于开发人员各个版本的ios sdk有什么不同(清单)
- iOS开发--生成二维码及扫描二维码(原生)
- 【iOS开发】ZBar的使用:二维码的生成及扫描 —— 伊禾媛
- iOS开发笔记(三):二维码生成