From 3e8437ae559487362fae3525beb79c534c213a51 Mon Sep 17 00:00:00 2001 From: 单军华 Date: Thu, 12 Jul 2018 13:44:34 +0800 Subject: [PATCH] bug修复和功能优化 --- screendisplay/screendisplay/Classes/Helpers/TDTouchID.m | 125 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 125 insertions(+), 0 deletions(-) diff --git a/screendisplay/screendisplay/Classes/Helpers/TDTouchID.m b/screendisplay/screendisplay/Classes/Helpers/TDTouchID.m new file mode 100755 index 0000000..be20502 --- /dev/null +++ b/screendisplay/screendisplay/Classes/Helpers/TDTouchID.m @@ -0,0 +1,125 @@ + + +#import "TDTouchID.h" + +@implementation TDTouchID + ++ (void)td_showTouchIDWithDescribe:(NSString *)desc BlockState:(StateBlock)block{ + + if (NSFoundationVersionNumber < NSFoundationVersionNumber_iOS_8_0) { + + dispatch_async(dispatch_get_main_queue(), ^{ + NSLog(@"���������������������TouchID (������������iOS 8.0������������)"); + block(TDTouchIDStateVersionNotSupport,nil); + }); + + return; + } + + LAContext *context = [[LAContext alloc] init]; + + context.localizedFallbackTitle = desc ?: @"������Home���������������������"; + + NSError *error = nil; + + if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) { + + [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:desc ?: @"������Home���������������������" reply:^(BOOL success, NSError * _Nullable error) { + + if (success) { + dispatch_async(dispatch_get_main_queue(), ^{ + NSLog(@"TouchID ������������"); + block(TDTouchIDStateSuccess,error); + }); + }else if(error){ + + switch (error.code) { + case LAErrorAuthenticationFailed:{ + dispatch_async(dispatch_get_main_queue(), ^{ + NSLog(@"TouchID ������������"); + block(TDTouchIDStateFail,error); + }); + break; + } + case LAErrorUserCancel:{ + dispatch_async(dispatch_get_main_queue(), ^{ + NSLog(@"TouchID ���������������������"); + block(TDTouchIDStateUserCancel,error); + }); + } + break; + case LAErrorUserFallback:{ + dispatch_async(dispatch_get_main_queue(), ^{ + NSLog(@"���������������TouchID,������������������������"); + block(TDTouchIDStateInputPassword,error); + }); + } + break; + case LAErrorSystemCancel:{ + dispatch_async(dispatch_get_main_queue(), ^{ + NSLog(@"TouchID ��������������� (���������������,������,������Home������)"); + block(TDTouchIDStateSystemCancel,error); + }); + } + break; + case LAErrorPasscodeNotSet:{ + dispatch_async(dispatch_get_main_queue(), ^{ + NSLog(@"TouchID ������������,������������������������������"); + block(TDTouchIDStatePasswordNotSet,error); + }); + } + break; + case LAErrorTouchIDNotEnrolled:{ + dispatch_async(dispatch_get_main_queue(), ^{ + NSLog(@"TouchID ������������,������������������������TouchID"); + block(TDTouchIDStateTouchIDNotSet,error); + }); + } + break; + case LAErrorTouchIDNotAvailable:{ + dispatch_async(dispatch_get_main_queue(), ^{ + NSLog(@"TouchID ������"); + block(TDTouchIDStateTouchIDNotAvailable,error); + }); + } + break; + case LAErrorTouchIDLockout:{ + dispatch_async(dispatch_get_main_queue(), ^{ + NSLog(@"TouchID ���������(������������������TouchID������,������������������������������������)"); + block(TDTouchIDStateTouchIDLockout,error); + }); + } + break; + case LAErrorAppCancel:{ + dispatch_async(dispatch_get_main_queue(), ^{ + NSLog(@"��������������������������������������� (���App������������������)"); + block(TDTouchIDStateAppCancel,error); + }); + } + break; + case LAErrorInvalidContext:{ + dispatch_async(dispatch_get_main_queue(), ^{ + NSLog(@"��������������������������������������� (LAContext������������)"); + block(TDTouchIDStateInvalidContext,error); + }); + } + break; + default: + break; + } + } + }]; + + }else{ + + dispatch_async(dispatch_get_main_queue(), ^{ + NSLog(@"���������������������TouchID"); + block(TDTouchIDStateNotSupport,error); + }); + + } + +} + + +@end -- Gitblit v1.8.0