iOS指纹解锁

1、首先,引入依赖框架 LocalAuthentication.framework

#import <LocalAuthentication/LocalAuthentication.h>

2、然后,判断系统是否为iOS8及以上

//iOS8.0后才支持指纹识别接口
if ([UIDevice currentDevice].systemVersion.floatValue < 8.0) {
return;
}

3、最后,在APP启动时调用以下方法即可完成指纹解锁的全部功能集成

- (void)evaluateAuthenticate
{
//创建LAContext
LAContext* context = [[LAContext alloc] init];
NSError* error = nil;
NSString* result = @"请验证已有指纹"; //首先使用canEvaluatePolicy 判断设备支持状态
if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
//支持指纹验证
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:result reply:^(BOOL success, NSError *error) {
if (success) {
//验证成功,主线程处理UI
}
else
{
NSLog(@"%@",error.localizedDescription);
switch (error.code) {
case LAErrorSystemCancel:
{
//系统取消授权,如其他APP切入
break;
}
case LAErrorUserCancel:
{
//用户取消验证Touch ID
break;
}
case LAErrorAuthenticationFailed:
{
//授权失败
break;
}
case LAErrorPasscodeNotSet:
{
//系统未设置密码
break;
}
case LAErrorTouchIDNotAvailable:
{
//设备Touch ID不可用,例如未打开
break;
}
case LAErrorTouchIDNotEnrolled:
{
//设备Touch ID不可用,用户未录入
break;
}
case LAErrorUserFallback:
{
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
//用户选择输入密码,切换主线程处理 }];
break;
}
default:
{
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
//其他情况,切换主线程处理
}];
break;
}
}
}
}];
}
else
{
//不支持指纹识别,LOG出错误详情
NSLog(@"不支持指纹识别"); switch (error.code) {
case LAErrorTouchIDNotEnrolled:
{
NSLog(@"TouchID is not enrolled");
break;
}
case LAErrorPasscodeNotSet:
{
NSLog(@"A passcode has not been set");
break;
}
default:
{
NSLog(@"TouchID not available");
break;
}
} NSLog(@"%@",error.localizedDescription);
}
}

最新文章

  1. curl post
  2. Linux文件权限概念
  3. Hausdorff distance
  4. java 线程的优先级
  5. 如何使用XproerUI库(WTL)-XproerUI界面库教程
  6. Genesis-3D开源游戏引擎简介!
  7. Windows phone 8 学习笔记(5) 图块与通知
  8. Lua 服务器与客户端实例(转)
  9. 二维码utils希望对大家有帮助
  10. 大数据征信的应用和启示:ZestFinance的基于大数据的信用评估技术
  11. centos环境的python、scrapy部署
  12. 大数据---Ranger-1
  13. git 操作命令详解
  14. postgre索引
  15. HDU 3579
  16. buntu14.04和16.04官方默认更新源sources.list和第三方源推荐(干货!)转
  17. fiddler抓取https-----重要
  18. ReentrantLock源码(一)
  19. Notes of Daily Scrum Meeting(12.16)
  20. MT【85】正整数系数

热门文章

  1. Linux常用性能工具功能、用法及原理(一)
  2. 第一册:lesson eighty one.
  3. JQuery ajax的使用
  4. 如何把ASP.NET MVC项目部署到本地IIS上
  5. Redis中的执行命令的过程
  6. C#基础知识回顾:1.由WeakReference想到对象的创建与销毁
  7. 数据库 &#39;xxxx&#39; 的事务日志已满。若要查明无法重用日志中的空间的原因
  8. mybatis_03_ mapper代理方式实现MyBatis的Dao编写
  9. spring aop 实践
  10. SaaS技术栈的走势