指紋解鎖方法的封裝

由于最近在項目中很多處都需要使用指紋驗證 ?最好的辦法就是封裝起來 ?以下是我用block封裝的類方法

Appledelegate.h

@interface AppDelegate : UIResponder

+(void)sureUserWith:(void (^)())successBlock failBlock:(void (^)(NSString *errorMessage,BOOL isAlt))failBlock;

@end

Appledelegate.m


+(void)sureUserWith:(void (^)())successBlock failBlock:(void (^)(NSString *errorMessage,BOOL isAlt))failBlock;

{

[SVProgressHUD show];

//初始化上下文對象

LAContext* context = [[LAContext alloc] init];

context.localizedFallbackTitle = @"";

//錯誤對象

NSError* error = nil;

NSString* result = @"通過Home鍵驗證已有手機指紋";

//首先使用canEvaluatePolicy 判斷設備支持狀態

if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {

//支持指紋驗證

[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:result reply:^(BOOL success, NSError *error) {

if (success) {

//驗證成功,主線程處理UI

[[NSOperationQueue mainQueue] addOperationWithBlock:^{

successBlock();

}];

}

else

{

[SVProgressHUD dismiss];

NSLog(@"%@",error.localizedDescription);

switch (error.code) {

case LAErrorSystemCancel:

{

failBlock(@"切換到其他APP,系統取消驗證Touch ID",NO);

//切換到其他APP,系統取消驗證Touch ID

break;

}

case LAErrorUserCancel:

{

failBlock(@"用戶取消驗證Touch ID",NO);

//用戶取消驗證Touch ID

break;

}

case LAErrorUserFallback:

{

NSLog(@"User selected to enter custom password");

[[NSOperationQueue mainQueue] addOperationWithBlock:^{

//用戶選擇其他驗證方式,切換主線程處理

}];

break;

}

default:

{

[[NSOperationQueue mainQueue] addOperationWithBlock:^{

//其他情況,切換主線程處理

//多次錯誤

failBlock(@"您已多次錯誤,請重新登錄",YES);

}];

break;

}

}

}

}];

}

else

{

//不支持指紋識別,LOG出錯誤詳情

switch (error.code) {

case LAErrorTouchIDNotEnrolled:

{

failBlock(@"設備不支持指紋解鎖",NO);

break;

}

case LAErrorPasscodeNotSet:

{

failBlock(@"設備未設置指紋解鎖",NO);

break;

}

case -8:

{

failBlock(@"系統指紋已被鎖定,請選擇其他登錄方式",YES);

break;

}

case -1:

{

//連續錯誤三次

[SVProgressHUD dismiss];

failBlock(@"抱歉,您未能通過Touch ID指紋驗證!",YES);

break;

}

default:

{

failBlock(@"設備未設置touchId",NO);

break;

}

}

}

}


有不足的地方還希望大家能指正以下~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容