iOS8中使用TouchID校正,ios8touchid校正

來源:互聯網
上載者:User

iOS8中使用TouchID校正,ios8touchid校正

在iOS8中,開發人員們可使用向第三方應用開放了Touch ID許可權的API,以便他們在應用中使用指紋認證來完成使用者認證部分。

本文主要介紹如何在應用中整合Touch ID來校正使用者的身份。

#import <LocalAuthentication/LocalAuthentication.h>這個庫必須要Xcode6並且串連的是真機,才不會提示找不到的錯誤。 如果是模擬器會提示找不到這個庫。

 

  1 - (IBAction)authenticateButtonTapped:(id)sender {  2     LAContext *context = [[LAContext alloc] init];  3     context.localizedFallbackTitle = @"輸入密碼";  4     NSError *error = nil;  5       6     if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {  7           8         [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics  9                 localizedReason:@"您是這裝置的所有者嗎?" 10                           reply:^(BOOL success, NSError *error) { 11                               if (success) { 12                                   dispatch_async (dispatch_get_main_queue(), ^{ 13                                        14                                       UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Success" 15                                                                                       message:@"你是裝置主人。" 16                                                                                      delegate:nil 17                                                                             cancelButtonTitle:@"Ok" 18                                                                             otherButtonTitles:nil]; 19                                       [alert show]; 20                                   }); 21                                    22                               }else{ 23                                    24                               25                               /* 26                                // 使用者未提供有效認證,(3次機會失敗 --身分識別驗證失敗)。 27                                LAErrorAuthenticationFailed = kLAErrorAuthenticationFailed, 28                                 29                                // 認證被取消,(使用者點擊取消按鈕)。 30                                LAErrorUserCancel           = kLAErrorUserCancel, 31                                 32                                // 認證被取消,使用者點擊回退按鈕(輸入密碼)。 33                                LAErrorUserFallback         = kLAErrorUserFallback, 34                                 35                                // 身分識別驗證被系統取消,(比如另一個應用程式去前台)。 36                                LAErrorSystemCancel         = kLAErrorSystemCancel, 37                                 38                                // 身分識別驗證無法啟動,因為密碼在裝置上沒有設定。 39                                LAErrorPasscodeNotSet       = kLAErrorPasscodeNotSet, 40                                 41                                // 身分識別驗證無法啟動,因為觸摸ID在裝置上不可用。 42                                LAErrorTouchIDNotAvailable  = kLAErrorTouchIDNotAvailable, 43                                 44                                // 身分識別驗證無法啟動,因為沒有登記的手指觸摸ID。 沒有設定指紋密碼時。 45                                LAErrorTouchIDNotEnrolled   = kLAErrorTouchIDNotEnrolled, 46                                **/ 47                               switch (error.code) { 48                                   case LAErrorAuthenticationFailed: 49                                       NSLog(@"身分識別驗證失敗。"); 50                                     51                                       break; 52                                        53                                   case LAErrorUserCancel: 54                                       NSLog(@"使用者點擊取消按鈕。"); 55                                     56                                       break; 57                                        58                                   case LAErrorUserFallback: 59                                       NSLog(@"使用者點擊輸入密碼。"); 60                                     61                                       break; 62                                        63                                   case LAErrorSystemCancel: 64                                       NSLog(@"另一個應用程式去前台"); 65                                    66                                       break; 67                                        68                                   case LAErrorPasscodeNotSet: 69                                       NSLog(@"密碼在裝置上沒有設定"); 70                                      71                                       break; 72                                        73                                   case LAErrorTouchIDNotAvailable: 74                                       NSLog(@"觸摸ID在裝置上不可用"); 75                                    76                                       break; 77                                        78                                   case LAErrorTouchIDNotEnrolled: 79                                       NSLog(@"沒有登記的手指觸摸ID。"); 80                                  81                                       break; 82                                        83                                   default: 84                                       NSLog(@"Touch ID沒配置"); 85                                   86                                       break; 87                               } 88                             } 89                         }]; 90          91     } else { 92         dispatch_async (dispatch_get_main_queue(), ^{ 93              94             UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"錯誤提示" 95                                                             message:@"您的裝置沒有觸摸ID." 96                                                            delegate:nil 97                                                   cancelButtonTitle:@"Ok" 98                                                   otherButtonTitles:nil]; 99             [alert show];100         });101     }102   103 }

其中:

(1)localizedFallbackTitle:用於設定左邊的按鈕的名稱,預設是輸入密碼。

(2)localizedReason:用於設定提示,表示為什麼要使用Touch ID,如代碼中@"您是這裝置的所有者嗎?"。

 官方的API就是簡單,簡簡單單幾句話 就可以。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.