iOS自iOS8.0出的指纹解锁api
2016-06-21 16:06
615 查看
引入头文件
#import <LocalAuthentication/LocalAuthentication.h>
- (void)viewDidLoad {
[super
viewDidLoad];
self.view.backgroundColor = [UIColor
redColor];
用一个点击屏幕事件唤起指纹验证的请求
UITapGestureRecognizer *tap = [[UITapGestureRecognizer
alloc]
initWithTarget:self
action:@selector(authenticateUser)];
[self.view
addGestureRecognizer:tap];
// Do any additional setup after loading the view, typically from a nib.
}
验证的方法
- (void)authenticateUser
{
//初始化上下文对象
LAContext* context = [[LAContext
alloc] init];
//错误对象
NSError* error =
nil;
NSString* result =
@"Authentication需要验证你的指纹";
//首先使用canEvaluatePolicy
判断设备支持状态
if ([context
canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
error:&error]) {
//支持指纹验证
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
localizedReason:result
reply:^(BOOL success,
NSError *error) {
if (success) {
NSLog(@"验证成功");
//验证成功,主线程处理UI
}
else
{
NSLog(@"%@",error.localizedDescription);
switch (error.code) {
case
LAErrorSystemCancel:
{
NSLog(@"系统取消了验证touch
id");
//切换到其他APP,系统取消验证Touch
ID
break;
}
case
LAErrorUserCancel:
{
NSLog(@"用户取消了验证");
//用户取消验证Touch ID
break;
}
case
LAErrorUserFallback:
{
NSLog(@"用户选择手动输入密码");
[[NSOperationQueue
mainQueue] addOperationWithBlock:^{
//用户选择其他验证方式,切换主线程处理
}];
break;
}
default:
{
[[NSOperationQueue
mainQueue] addOperationWithBlock:^{
NSLog(@"其它情况");
//其他情况,切换主线程处理
}];
break;
}
}
}
}];
}
else
{
//不支持指纹识别,LOG出错误详情
switch (error.code) {
case
LAErrorTouchIDNotEnrolled:
{
NSLog(@"设备Touch ID不可用,用户未录入");
break;
}
case
LAErrorPasscodeNotSet:
{
NSLog(@"系统未设置密码");
break;
}
default:
{
NSLog(@"TouchID
不可用");
break;
}
}
}
}
#import <LocalAuthentication/LocalAuthentication.h>
- (void)viewDidLoad {
[super
viewDidLoad];
self.view.backgroundColor = [UIColor
redColor];
用一个点击屏幕事件唤起指纹验证的请求
UITapGestureRecognizer *tap = [[UITapGestureRecognizer
alloc]
initWithTarget:self
action:@selector(authenticateUser)];
[self.view
addGestureRecognizer:tap];
// Do any additional setup after loading the view, typically from a nib.
}
验证的方法
- (void)authenticateUser
{
//初始化上下文对象
LAContext* context = [[LAContext
alloc] init];
//错误对象
NSError* error =
nil;
NSString* result =
@"Authentication需要验证你的指纹";
//首先使用canEvaluatePolicy
判断设备支持状态
if ([context
canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
error:&error]) {
//支持指纹验证
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
localizedReason:result
reply:^(BOOL success,
NSError *error) {
if (success) {
NSLog(@"验证成功");
//验证成功,主线程处理UI
}
else
{
NSLog(@"%@",error.localizedDescription);
switch (error.code) {
case
LAErrorSystemCancel:
{
NSLog(@"系统取消了验证touch
id");
//切换到其他APP,系统取消验证Touch
ID
break;
}
case
LAErrorUserCancel:
{
NSLog(@"用户取消了验证");
//用户取消验证Touch ID
break;
}
case
LAErrorUserFallback:
{
NSLog(@"用户选择手动输入密码");
[[NSOperationQueue
mainQueue] addOperationWithBlock:^{
//用户选择其他验证方式,切换主线程处理
}];
break;
}
default:
{
[[NSOperationQueue
mainQueue] addOperationWithBlock:^{
NSLog(@"其它情况");
//其他情况,切换主线程处理
}];
break;
}
}
}
}];
}
else
{
//不支持指纹识别,LOG出错误详情
switch (error.code) {
case
LAErrorTouchIDNotEnrolled:
{
NSLog(@"设备Touch ID不可用,用户未录入");
break;
}
case
LAErrorPasscodeNotSet:
{
NSLog(@"系统未设置密码");
break;
}
default:
{
NSLog(@"TouchID
不可用");
break;
}
}
}
}
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用开发中AFNetworking库的常用HTTP操作方法小结
- iOS应用中UISearchDisplayController搜索效果的用法
- iOS App开发中的UISegmentedControl分段组件用法总结
- IOS开发环境windows化攻略
- iOS应用中UITableView左滑自定义选项及批量删除的实现
- iOS中UIAlertView警告框组件的使用教程
- 浅析iOS应用开发中线程间的通信与线程安全问题
- iOS中的UIKeyboard键盘视图使用方法小结
- 检测iOS设备是否越狱的方法