IOS 之扫描银行卡号DEMO
2016-07-01 19:40
489 查看
通过扫描银行卡,获取银行卡号,在网上搜过后,选用了card.io这个SDK,过程如下:
(1)下载Card.io
Card.io是让手机摄像头获取信用卡的信息,中间利用了OCR(光学字符识别)的扫描技术返回结果,它还推出了SDK(软件开发包),让开发者们可以把card.io添加到自己的应用当中。可以在https://github.com/paypal/PayPal-iOS-SDK下载最新的SDK
(2)添加到项目里
1、将下载的SDK包里名为CardIO的文件拖到工程里,在TARGETS-Build Phases - Link Binary With Librarys添加下面依赖库
AudioToolbox
AVFoundation
CoreGraphics
CoreMedia
CoreVideo
Foundation
MobileCoreServices
OpenGLES
QuartzCore
Security
UIKit
如果是xcode5或者更新的版本,只需要添加下面的库
AVFoundation
AudioToolbox
CoreMedia
MobileCoreServices
并且保证Build Settings里面这两项都是YES:
Enable Modules (C and Objective-C)
Link Frameworks Automatically
*
代码说明:
开始触发扫描
代理方法
遇到的问题解决方法:
1、遇到很多的错误,但是大多数都是没有导入依赖库,但是当全部导入依赖库后,还是会报错,而且错误达到了20多个,这个就得需要设置了,看下列解决方案。
这么多看着就是揪心的,下面就是解决方法。
2、问题解决了,但是会在点击调用相机的时候会崩溃,又得解决问题;
下面是打印的奔溃日志:
从奔溃日志里面可以看到解决的方法;
就这样就ok了
(1)下载Card.io
Card.io是让手机摄像头获取信用卡的信息,中间利用了OCR(光学字符识别)的扫描技术返回结果,它还推出了SDK(软件开发包),让开发者们可以把card.io添加到自己的应用当中。可以在https://github.com/paypal/PayPal-iOS-SDK下载最新的SDK
(2)添加到项目里
1、将下载的SDK包里名为CardIO的文件拖到工程里,在TARGETS-Build Phases - Link Binary With Librarys添加下面依赖库
AudioToolbox
AVFoundation
CoreGraphics
CoreMedia
CoreVideo
Foundation
MobileCoreServices
OpenGLES
QuartzCore
Security
UIKit
如果是xcode5或者更新的版本,只需要添加下面的库
AVFoundation
AudioToolbox
CoreMedia
MobileCoreServices
并且保证Build Settings里面这两项都是YES:
Enable Modules (C and Objective-C)
Link Frameworks Automatically
*
代码说明:
开始触发扫描
- (IBAction)BeginActionCardID:(id)sender { CardIOPaymentViewController *scanViewController = [[CardIOPaymentViewController alloc] initWithPaymentDelegate:self]; scanViewController.modalPresentationStyle = UIModalPresentationFormSheet; [self presentViewController:scanViewController animated:YES completion:nil]; }
代理方法
#pragma mark - CardIOPaymentViewControllerDelegate //扫描完成 - (void)userDidProvideCreditCardInfo:(CardIOCreditCardInfo *)info inPaymentViewController:(CardIOPaymentViewController *)paymentViewController { NSLog(@"Scan succeeded with info: %@", info); // Do whatever needs to be done to deliver the purchased items. [self dismissViewControllerAnimated:YES completion:nil]; self.infoLabel.text = [NSString stringWithFormat:@"Received card info. Number: %@, expiry: %02lu/%lu, cvv: %@.", info.redactedCardNumber, (unsigned long)info.expiryMonth, (unsigned long)info.expiryYear, info.cvv]; } //用户取消扫描 - (void)userDidCancelPaymentViewController:(CardIOPaymentViewController *)paymentViewController { NSLog(@"User cancelled scan"); [self dismissViewControllerAnimated:YES completion:nil]; }
- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [CardIOUtilities preload]; }
遇到的问题解决方法:
1、遇到很多的错误,但是大多数都是没有导入依赖库,但是当全部导入依赖库后,还是会报错,而且错误达到了20多个,这个就得需要设置了,看下列解决方案。
这么多看着就是揪心的,下面就是解决方法。
在TARGETS-Build Settings添加 -lc++ 到Other Linker Flags
2、问题解决了,但是会在点击调用相机的时候会崩溃,又得解决问题;
下面是打印的奔溃日志:
从奔溃日志里面可以看到解决的方法;
在TARGETS-Build Settings添加 -ObjC 到Other Linker Flags
就这样就ok了
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- Android ADT 23.0.0无法更新到23.0.2问题解决方案
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 软件 bug 的生命周期
- SDKMAN:轻松管理多个软件开发套件 (SDK) 的命令行工具
- Parse正式发布开源PHP SDK
- C#实现控制摄像头的类
- 基于Android SDK-在64位Linux中使用需要注意的问题
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用开发中AFNetworking库的常用HTTP操作方法小结
- iOS应用中UISearchDisplayController搜索效果的用法
- iOS App开发中的UISegmentedControl分段组件用法总结
- IOS开发环境windows化攻略