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