欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

iOS指紋登錄(TouchID)集成方案詳解

TouchID指紋識別是iPhone 5S設備中增加的一項重大功能.蘋果的后續(xù)移動設備也相繼添加了指紋功能,在實際使用中還是相當方便的,比如快捷登錄,快捷支付等等.系統(tǒng)提供了相應框架,使用起來還是比較方便的.使用LAContext對象即可完成指紋識別,提高用戶體驗.

成都創(chuàng)新互聯(lián)公司主營代縣網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,APP應用開發(fā),代縣h5成都微信小程序搭建,代縣網(wǎng)站營銷推廣歡迎代縣等地區(qū)企業(yè)咨詢

iOS指紋登錄(TouchID)集成方案詳解

提示:指紋識別必須用真機測試,并且在iOS8以上系統(tǒng).

TouchID API使用

1.添加頭文件

#import

2.判斷系統(tǒng)版本

 //首先判斷版本
if (NSFoundationVersionNumber < NSFoundationVersionNumber_iOS_8_0) {
  NSLog(@"系統(tǒng)版本不支持TouchID");
  return;
}

3.LAPolicy

在這里簡單介紹一下LAPolicy,它是一個枚舉.我們根據(jù)自己的需要選擇LAPolicy,它提供兩個值:

LAPolicyDeviceOwnerAuthenticationWithBiometrics和LAPolicyDeviceOwnerAuthentication.

<1>. LAPolicyDeviceOwnerAuthenticationWithBiometrics是支持iOS8以上系統(tǒng),使用該設備的TouchID進行驗證,當輸入TouchID驗證5次失敗后,TouchID被鎖定,只能通過鎖屏后解鎖設備時輸入正確的解鎖密碼來解鎖TouchID。

<2>.LAPolicyDeviceOwnerAuthentication是支持iOS9以上系統(tǒng),使用該設備的TouchID或設備密碼進行驗證,當輸入TouchID驗證5次失敗后,TouchID被鎖定,會觸發(fā)設備密碼頁面進行驗證。

4. canEvaluatePolicy

使用canEvaluatePolicy方法判斷設備是否支持TouchID,返回BOOL為YES,該設備支持TouchID。

 if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {

error為返回驗證錯誤碼.具體不解釋了.

5. evaluatedPolicyDomainState

context.evaluatedPolicyDomainState用于判斷設備上的指紋是否被更改,在LAContext被創(chuàng)建的時候,evaluatedPolicyDomainState才生效,可在TouchID驗證成功時,將它記錄下來,用于下次使用TouchID時校驗,提高安全性。

6. evaluatePolicy

evaluatePolicy方法是對TouchID進行驗證,Block回調中如果success為YES則驗證成功,為NO驗證失敗,并對error進行解析.

- (IBAction)loginButtonClick:(UIButton *)sender {
  
 //首先判斷版本
 if (NSFoundationVersionNumber < NSFoundationVersionNumber_iOS_8_0) {
  NSLog(@"系統(tǒng)版本不支持TouchID");
  return;
 }
  
  
 LAContext *context = [[LAContext alloc] init];
 context.localizedFallbackTitle = @"輸入密碼";
 if (@available(iOS 10.0, *)) {
//  context.localizedCancelTitle = @"22222";
 } else {
  // Fallback on earlier versions
 }
 NSError *error = nil;
 
 if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
   
  [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"通過Home鍵驗證已有手機指紋" reply:^(BOOL success, NSError * _Nullable error) {
    
   if (success) {
    dispatch_async(dispatch_get_main_queue(), ^{
     NSLog(@"TouchID 驗證成功");
    });
   }else if(error){
     
    switch (error.code) {
     case LAErrorAuthenticationFailed:{
      dispatch_async(dispatch_get_main_queue(), ^{
       NSLog(@"TouchID 驗證失敗");
      });
      break;
     }
     case LAErrorUserCancel:{
      dispatch_async(dispatch_get_main_queue(), ^{
       NSLog(@"TouchID 被用戶手動取消");
      });
     }
      break;
     case LAErrorUserFallback:{
      dispatch_async(dispatch_get_main_queue(), ^{
       NSLog(@"用戶不使用TouchID,選擇手動輸入密碼");
      });
     }
      break;
     case LAErrorSystemCancel:{
      dispatch_async(dispatch_get_main_queue(), ^{
       NSLog(@"TouchID 被系統(tǒng)取消 (如遇到來電,鎖屏,按了Home鍵等)");
      });
     }
      break;
     case LAErrorPasscodeNotSet:{
      dispatch_async(dispatch_get_main_queue(), ^{
       NSLog(@"TouchID 無法啟動,因為用戶沒有設置密碼");
      });
     }
      break;
     case LAErrorTouchIDNotEnrolled:{
      dispatch_async(dispatch_get_main_queue(), ^{
       NSLog(@"TouchID 無法啟動,因為用戶沒有設置TouchID");
      });
     }
      break;
     case LAErrorTouchIDNotAvailable:{
      dispatch_async(dispatch_get_main_queue(), ^{
       NSLog(@"TouchID 無效");
      });
     }
      break;
     case LAErrorTouchIDLockout:{
      dispatch_async(dispatch_get_main_queue(), ^{
       NSLog(@"TouchID 被鎖定(連續(xù)多次驗證TouchID失敗,系統(tǒng)需要用戶手動輸入密碼)");
      });
     }
      break;
     case LAErrorAppCancel:{
      dispatch_async(dispatch_get_main_queue(), ^{
       NSLog(@"當前軟件被掛起并取消了授權 (如App進入了后臺等)");
      });
     }
      break;
     case LAErrorInvalidContext:{
      dispatch_async(dispatch_get_main_queue(), ^{
       NSLog(@"當前軟件被掛起并取消了授權 (LAContext對象無效)");
      });
     }
      break;
     default:
      break;
    }
   }
  }];
   
 }else{
  NSLog(@"當前設備不支持TouchID");
 }
}

上面這個代碼, 是整個TouchID的核心,也幾乎是所有代碼了.

驗證

驗證必須使用真機

iOS指紋登錄(TouchID)集成方案詳解

結果

iOS指紋登錄(TouchID)集成方案詳解

輸入錯誤的時候

總結:TouchID使用起來不難,重要的是使用流程邏輯.

以登錄為例,一般來說流程是這樣的:

  • 開啟指紋登錄:首次登陸使用密碼登錄,登錄后,可以設置一個開啟指紋ID登錄的按鈕,來進行指紋認證.
  • 驗證:檢測是否支持TouchID.
  • 生成設備賬號/密碼:TouchID驗證通過后,根據(jù)當前已登錄的賬號和硬件設備Token,生成設備賬號/密碼(規(guī)則可自定,密碼要長要復雜),并保存在keychain;
  • 綁定:生成設備賬號/密碼后,將原賬號及設備賬號/密碼,加密后(題主使用的是RSA加密)發(fā)送到服務端進行綁定;
  • 成功:驗證原賬號及設備賬號有效后,返回相應狀態(tài),綁定成功則完成整個TouchID(設備)綁定流程。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

文章題目:iOS指紋登錄(TouchID)集成方案詳解
路徑分享:http://aaarwkj.com/article36/gjodpg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供響應式網(wǎng)站域名注冊、網(wǎng)站導航、建站公司、App開發(fā)、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設
日本东京热不卡一区二区| 伊人久久大香线蕉av色婷婷色| 国产精品一区二区三区在线| 欧美日韩亚洲一区二区搜索| 亚洲精品一品区二品区三区| 黄片视频免费在线播放大全| 久久精品国产亚洲夜色av网站| 成人黄色一级电影免费看| 97在线观看免费公开| 精品偷拍污视频一区二区| 国产三级精品在线免费| 精品在线中文字幕不卡| 视频在线观看亚洲午夜福利| 蜜臀av首页在线观看| 国产乱国产乱老熟女视频| 欧美香蕉在线观看视频| 国产精品日本在线观看| 精品久久久久久亚洲电影| 国产亚洲一线二线三线| 中文日本强暴人妻另类视频| 日本熟熟妇丰满人妻啪啪| 欧美日韩精品国产精品| 国产精品一区二区三区乱色| 国产精品va在线观看入口| 欧美激情网页一区三区| 理论三级麻豆国产在线| 黑人巨大精品欧美久久| 亚洲av乱码毛片在线播放| 亚洲av欧美日韩国产| 久久亚洲中文字幕精品一区四区| 色婷婷亚洲婷婷亚洲最大| 国产精品毛片av在线| 国语对白精品视频在线| 91麻豆精品国产自产| 日本一区二区三区加勒比| 日韩欧美国产精品一区| 99久久婷婷免费国产综合精品| 亚洲国产精品欧美激情| 日本一区二区中文字幕视频| 亚洲精品一区二区免费看| 亚洲欧美日韩制服另类|