SGQRCodeiOS 二维码处理工具

联合创作 · 2023-09-30 12:50

SGQRCode 是基于 Objective-C 的二维码综合工具,支持生成/扫描二维码,可从图片中识别二维码、进行相机/相册权限判断,或根据光线强弱开启关闭手电筒...

主要功能

  • 生成二维码
  • 扫描二维码
  • 捕获内容缩放功能
  • 图片中识别二维码
  • 相机、相册权限判断
  • 根据光线强弱开启关闭手电筒
  • 扫描成功后界面间的逻辑跳转处理
  • 扫描界面可高度自定义(满足所有主流app)

主要类说明

类名 说明
SGScanCode 扫描二维码
SGScanViewConfigure 扫描视图配置
SGScanView 扫描视图
SGPermission 相册、相机权限管理
SGTorch 手电筒管理
SGQRCodeLog 调试日志

SGQRCode 集成流程

手动集成

添加 SGQRCode 文件夹到工程中

通过 CocoaPods 集成

pod 'SGQRCode', '~> 4.1.0'

Info.plist 添加以下字段

NSCameraUsageDescription (相机权限访问)

NSPhotoLibraryUsageDescription (相册权限访问)

引用头文件

#import <SGQRCode/SGQRCode.h>

扫描二维码相关代码

// 创建二维码扫描类
scanCode = [SGScanCode scanCode];

// 预览视图,必须设置
scanCode.preview = self.view;

// 遵循 SGScanCodeDelegate
scanCode.delegate = self;

// 遵循 SGScanCodeSampleBufferDelegate
scanCode.sampleBufferDelegate = self;

// 开启扫描
[scanCode startRunning];

// 结束扫描
[scanCode stopRunning];

Delegate 方法

// SGScanCodeDelegate
- (void)scanCode:(SGScanCode *)scanCode result:(NSString *)result {
    <#code#>
}

// SGScanCodeSampleBufferDelegate
- (void)scanCode:(SGScanCode *)scanCode brightness:(CGFloat)brightness {
    <#code#>
}

图片中识别二维码方法

[scanCode readQRCode:image completion:^(NSString *result) {
    <#code#>
}];

生成二维码相关方法

// 普通二维码生成方法
[SGGenerateQRCode generateQRCodeWithData:data size:size];

// 带 logo 的二维码生成方法
[SGGenerateQRCode generateQRCodeWithData:data size:size logoImage:logoImage ratio:ratio]; 

问题及解决方案

  • 若在使用 CocoaPods 安装第三方时,出现 [!] Unable to find a specification for SGQRCode 提示时,打开终端先输入 pod repo remove master;执行完毕后再输入 pod setup 即可 (可能会等待一段时间)

  • CIDetector 类只能识别图片中的二维码,目前暂不支持识别图片中的条形码 解决方案

浏览 9
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报