TouchID工具类
来源:互联网 发布:owncloud php网盘源码 编辑:程序博客网 时间:2024/06/05 18:46
引用
#import <LocalAuthentication/LocalAuthentication.h>
typedef void(^TouchIDFinish)(BOOL success, NSString * strAlter ,LAError errorCode);
判断
+(BOOL)isSupportTouchID{ //创建LAContext LAContext* context = [[LAContext alloc] init]; NSError* error = nil; if ([[[UIDevice currentDevice]systemVersion] floatValue]>=8.0) { return [context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]; }else{ return NO; }}
初始化并回调
+(void)initWithNeedStr:(NSString *)needStr fallbackTitle:(NSString *)fallbackTitle touchID:(TouchIDFinish)touchFinish{ if (touchFinish) { //创建LAContext LAContext *context = [LAContext new]; //这个属性是设置指纹输入失败之后的弹出框的选项 context.localizedFallbackTitle = fallbackTitle; NSError *error = nil; if ([self isSupportTouchID]) { NSLog(@"支持指纹识别"); [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:needStr reply:^(BOOL success, NSError * _Nullable error) { NSString *strAlter = @""; if (success) { strAlter = @"验证成功 刷新主界面"; }else{ NSLog(@"%@",error.localizedDescription); switch (error.code) { case LAErrorSystemCancel: { strAlter = @"系统取消授权,如其他APP切入"; break; } case LAErrorUserCancel: { strAlter = @"用户取消验证Touch ID"; break; } case LAErrorAuthenticationFailed: { strAlter = @"授权失败"; break; } case LAErrorPasscodeNotSet: { strAlter = @"系统未设置密码"; break; } case LAErrorTouchIDNotAvailable: { strAlter = @"设备Touch ID不可用,例如未打开"; break; } case LAErrorTouchIDNotEnrolled: { strAlter = @"设备Touch ID不可用,用户未录入"; break; } case LAErrorUserFallback: { strAlter = @"用户选择输入密码,切换主线程处理"; break; } default: { strAlter = @"其他情况,切换主线程处理"; break; } } } touchFinish(success,strAlter,error.code); }]; }else{ NSLog(@"不支持指纹识别"); NSString *strAlter = @""; switch (error.code) { case LAErrorTouchIDNotEnrolled: { strAlter = @"TouchID is not enrolled"; break; } case LAErrorPasscodeNotSet: { strAlter = @"A passcode has not been set"; break; } default: { strAlter = @"TouchID not available"; break; } } touchFinish(0,strAlter,error.code); } }}
调用
if ([TouchIDHelper isSupportTouchID]) { [TouchIDHelper initWithNeedStr:@"请按home键指纹解锁" fallbackTitle:@"没有忘记密码" touchID:^(BOOL success, NSString *strAlter, LAError errorCode) { if (success) { NSLog(@"请求网络登录"); }else{ //比较常见的 NSLog(@"strAlter:%@",strAlter); if (errorCode==LAErrorAuthenticationFailed) { NSLog(@"重复验证指纹失效"); }else if (errorCode==LAErrorUserCancel){ NSLog(@"用户点击取消 一般什么都不做"); }else if (errorCode==LAErrorUserFallback){ NSLog(@"用户第一次指纹失效 之后点击进入到密码登录"); } } }]; }
阅读全文
0 0
- TouchID工具类
- TouchID
- touchid
- TouchID
- touchID
- ios touchid
- iOS8:TouchID
- iOS8:TouchID
- iOS TouchID
- TouchID 解析
- ios TouchId
- iOS8指纹识别TouchID
- IOS8 TouchID使用介绍
- iOS8指纹识别TouchID
- iOS8指纹识别TouchID
- iOS8指纹识别TouchID
- iOS8使用TouchID
- iOS8指纹识别TouchID
- Monkey and Banana
- Opencv Mat 矩阵的运算
- Asp.Net中使用HTTP处理程序连接MySQL数据库
- 单调队列(求区间最值)
- (四)动态规划
- TouchID工具类
- IE浏览器的弹出模态框
- Drools 规则引擎----向领域驱动进步(二)
- 范式区别(简单版)
- TUXEDO配置常见问题及解决方法
- 【过滤器】(4)过滤器的应用案例:留言板敏感词过滤技术(包装模式)
- STM32F0两路AD配置参考
- EGADS学习资料
- Uncaught ReferenceError: Invalid left-hand side expression in postfix operation