ios原生二维码扫描与生成的实现教程
2019年12月06日
作者:佚名
之前都是第三方的二维码,操作简单pod集成,美滋滋。随着公司项目越来越恶心到大,还是自己撸一个比较实在。
demo的主要功能扫描二维码和生成二维码。
扫描相关类
二维码扫描需要获取摄像头并读取照片信息,因此我们需要导入系统的AVFoundation框架,创建视频会话。我们需要用到一下几个类:
- AVCaptureSession 会话对象。此类作为硬件设备输入输出信息的桥梁,承担实时获取设备数据的责任
- AVCaptureDeviceInput 设备输入类。这个类用来表示输入数据的硬件设备,配置抽象设备的port
- AVCaptureMetadataOutput 输出类。这个支持二维码、条形码等图像数据的识别
- AVCaptureVideoPreviewLayer 图层类。用来快速呈现摄像头获取的原始数据
二维码扫描功能的实现步骤是创建好会话对象,用来获取从硬件设备输入的数据,并实时显示在界面上。在扫描到相应图像数据的时候,通过AVCaptureVideoPreviewLayer类型进行返回
扫描二维码
1.首先倒入框架
#import <AVFoundation/AVFoundation.h>
2.遵守协议
<AVCaptureMetadataOutputObjectsDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate>
3.主要用到的属性设置
//捕获设备,默认后置摄像头 @property (strong,nonatomic) AVCaptureDevice * device; //输入设备 @property (strong,nonatomic) AVCaptureDeviceInput * input; //输出设备,需要指定他的输出类型及扫描范围 @property (strong,nonatomic) AVCaptureMetadataOutput * output; //AVFoundation框架捕获类的中心枢纽,协调输入输出设备以获得数据 @property (strong,nonatomic) AVCaptureSession * session; //展示捕获图像的图层,是CALayer的子类 @property (strong,nonatomic) AVCaptureVideoPreviewLayer * preview;
微信公众号搜索 “ 程序精选 ” ,选择关注!
精选程序员所需精品干货内容!