欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺析IOS開發(fā)TouchID指紋解鎖功能

 更新時間:2016年09月01日 11:52:40   投稿:daisy  
TouchID指紋解鎖功能現(xiàn)在在app中已經(jīng)很常見,其實這個功能實現(xiàn)起來是很簡單的,因為蘋果都已經(jīng)幫我們封裝好了,只需要實現(xiàn)幾個方法就可以了。下面來一起看看。

效果圖如下

實現(xiàn)過程

1.首先引入指紋解鎖必須的頭文件

#import <LocalAuthentication/LocalAuthentication.h>

2.了解下主要的兩個方法
這個方法是判斷設(shè)備是否支持TouchID的。

- (BOOL)canEvaluatePolicy:(LAPolicy)policy error:(NSError * __autoreleasing *)error __attribute__((swift_error(none)));

這個是用來驗證TouchID的,會有彈出框出來。

- (void)evaluatePolicy:(LAPolicy)policy
  localizedReason:(NSString *)localizedReason
     reply:(void(^)(BOOL success, NSError * __nullable error))reply;

3.新建LAContext對象

主要的屬性設(shè)置

localizedFallbackTitle:用于設(shè)置左邊的按鈕的名稱,默認是Enter Password.

localizedReason:用于設(shè)置提示語,表示為什么要使用Touch ID


解鎖失敗界面

 //創(chuàng)建LAContext
 LAContext *context = [LAContext new];

 
 //這個屬性是設(shè)置指紋輸入失敗之后的彈出框的選項
 context.localizedFallbackTitle = @"沒有忘記密碼";

4.主要回調(diào)方法,包括成功以及失敗的

NSError *error = nil;
 if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
  NSLog(@"支持指紋識別");
  [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"指紋解鎖" reply:^(BOOL success, NSError * _Nullable error) {
   if (success) {
    NSLog(@"驗證成功 刷新主界面");
   }else{
    NSLog(@"%@",error.localizedDescription);
    switch (error.code) {
     case LAErrorSystemCancel:
     {
      NSLog(@"系統(tǒng)取消授權(quán),如其他APP切入");
      break;
     }
     case LAErrorUserCancel:
     {
      NSLog(@"用戶取消驗證Touch ID");
      break;
     }
     case LAErrorAuthenticationFailed:
     {
      NSLog(@"授權(quán)失敗");
      break;
     }
     case LAErrorPasscodeNotSet:
     {
      NSLog(@"系統(tǒng)未設(shè)置密碼");
      break;
     }
     case LAErrorTouchIDNotAvailable:
     {
      NSLog(@"設(shè)備Touch ID不可用,例如未打開");
      break;
     }
     case LAErrorTouchIDNotEnrolled:
     {
      NSLog(@"設(shè)備Touch ID不可用,用戶未錄入");
      break;
     }
     case LAErrorUserFallback:
     {
      [[NSOperationQueue mainQueue] addOperationWithBlock:^{
       NSLog(@"用戶選擇輸入密碼,切換主線程處理");
      }];
      break;
     }
     default:
     {
      [[NSOperationQueue mainQueue] addOperationWithBlock:^{
       NSLog(@"其他情況,切換主線程處理");
      }];
      break;
     }
    }
   }
  }];
 }else{
  NSLog(@"不支持指紋識別");
  switch (error.code) {
   case LAErrorTouchIDNotEnrolled:
   {
    NSLog(@"TouchID is not enrolled");
    break;
   }
   case LAErrorPasscodeNotSet:
   {
    NSLog(@"A passcode has not been set");
    break;
   }
   default:
   {
    NSLog(@"TouchID not available");
    break;
   }
  }

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

總結(jié)

到這里指紋解鎖功能幾乎就算完成,使用確實很簡單,因為蘋果都已經(jīng)給我們做好一切,對我們開發(fā)者來說就很輕松了。教程寫的很簡陋,希望大家多多包涵,如果有疑問大家可以留言交流。

相關(guān)文章

最新評論