1.首先導入頭文件
#import <LocalAuthentication/LocalAuthentication.h>
2.關鍵代碼
- (void)validateTouchID { LAContext *context = [[LAContext alloc] init]; NSError *error; NSString *tip = @"通過Home鍵驗證已有手機指紋"; // 判斷手機是否有指紋 if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) { [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:tip reply:^(BOOL success, NSError *error) { if (success) { // 驗證成功 NSLog(@"success"); } else { NSLog(@"%@",error.description); switch (error.code) { case LAErrorSystemCancel: NSLog(@"系統取消授權"); break; case LAErrorUserCancel: NSLog(@"用戶取消"); break; case LAErrorUserFallback: NSLog(@"用戶輸入密碼"); break; default: break; } } }]; } else { NSLog(@"不支持指紋識別,%@",error.description); }}
3.LAError枚舉相關解釋
typedef NS_ENUM(NSInteger, LAError) { /// 認證不成功,因為用戶沒有提供有效的憑據 LAErrorAuthenticationFailed = kLAErrorAuthenticationFailed, /// 被用戶取消驗證(例如:“取消”按鈕)。 LAErrorUserCancel = kLAErrorUserCancel, /// 認證被取消了,因為用戶點擊回退按鈕(輸入密碼)。 LAErrorUserFallback = kLAErrorUserFallback, /// 通過系統(例如另一個應用程序的應用程序)被取消驗證。 LAErrorSystemCancel = kLAErrorSystemCancel, /// 認證無法啟動,因為密碼沒有設置在設備。 LAErrorPasscodeNotSet = kLAErrorPasscodeNotSet, /// 無法啟動驗證,因為在設備上不提供觸摸標識。 LAErrorTouchIDNotAvailable = kLAErrorTouchIDNotAvailable, /// 無法啟動驗證,因為觸摸標識沒有注冊手指。 LAErrorTouchIDNotEnrolled = kLAErrorTouchIDNotEnrolled,} NS_ENUM_AVAILABLE(10_10, 8_0);
4.效果圖
如果你不是在wb145230博客園看到本文,請點擊查看原文.
新聞熱點
疑難解答