你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 淺析IOS開發TouchID指紋解鎖功能

淺析IOS開發TouchID指紋解鎖功能

編輯:IOS開發綜合

效果圖如下

實現過程

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

#import <LocalAuthentication/LocalAuthentication.h>

2.了解下主要的兩個方法
這個方法是判斷設備是否支持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對象

主要的屬性設置

localizedFallbackTitle:用於設置左邊的按鈕的名稱,默認是Enter Password.

localizedReason:用於設置提示語,表示為什麼要使用Touch ID


解鎖失敗界面

 //創建LAContext
 LAContext *context = [LAContext new];

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

4.主要回調方法,包括成功以及失敗的

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(@"系統取消授權,如其他APP切入");
      break;
     }
     case LAErrorUserCancel:
     {
      NSLog(@"用戶取消驗證Touch ID");
      break;
     }
     case LAErrorAuthenticationFailed:
     {
      NSLog(@"授權失敗");
      break;
     }
     case LAErrorPasscodeNotSet:
     {
      NSLog(@"系統未設置密碼");
      break;
     }
     case LAErrorTouchIDNotAvailable:
     {
      NSLog(@"設備Touch ID不可用,例如未打開");
      break;
     }
     case LAErrorTouchIDNotEnrolled:
     {
      NSLog(@"設備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);
 }

總結

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

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved