你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS編程技術 >> IOS指紋識別調用

IOS指紋識別調用

編輯:IOS編程技術

最近正在開發的一個app需要加入指紋識別的功能,先搜索一下找到官方文檔,簡單易懂:

https://developer.apple.com/library/ios/documentation/LocalAuthentication/Reference/LocalAuthentication_Framework/index.html#classes

指紋識別主要的目的應該是判斷當前用戶是否機主,寫了個demo簡單體驗下:

1 首先需要引入指紋識別庫

2 引入庫

#import "LocalAuthentication/LAContext.h"

3 關鍵代碼

        LAContext *myContext = [[LAContext alloc] init];
        NSError *authError = nil;
        NSString *myLocalizedReasonString = @"We need to verify your fingerprint to confirm your identity";
        
        // 判斷設備是否支持指紋識別
        if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
            
            // 指紋識別只判斷當前用戶是否機主
            [myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
                      localizedReason:myLocalizedReasonString
                                reply:^(BOOL success, NSError *error) {
                                    if (success) {
                                        // User authenticated successfully, take appropriate action
                                        NSLog(@"指紋認證成功");
                                        
                                        returnCode = @"1";

                                    } else {
                                        // User did not authenticate successfully, look at error and take appropriate action
                                        NSLog(@"指紋認證失敗,%@",error.description);
                                        // 錯誤碼 error.code
                                        // -1: 連續三次指紋識別錯誤
                                        // -2: 在TouchID對話框中點擊了取消按鈕
                                        // -3: 在TouchID對話框中點擊了輸入密碼按鈕
                                        // -4: TouchID對話框被系統取消,例如按下Home或者電源鍵
                                        // -8: 連續五次指紋識別錯誤,TouchID功能被鎖定,下一次需要輸入系統密碼

                                        returnCode = [@(error.code) stringValue];
                                    }
                                }];
            
        } else {
            // Could not evaluate policy; look at authError and present an appropriate message to user
            NSLog(@"TouchID設備不可用");
            // TouchID沒有設置指紋
            // 關閉密碼(系統如果沒有設置密碼TouchID無法啟用)
            
        }
    

4 搞定!

5 FAQ

指紋認證失敗之後TouchID對話框中會出現一個“輸入密碼”的按鈕,本來以為點擊了這個按鈕應該會彈出系統的輸入密碼界面,但是實際上並沒有,error.code的值是-3,之後便有很多疑問,比如“如果系統沒有設置密碼怎麼辦?”,“能不能把這個輸入密碼按鈕去掉或者改成取消按鈕”,“我為什麼需要TouchID,好像沒有什麼意義”。。

經過測試得到以下結論:

a. 系統如果沒有設置密碼,TouchID便無法啟用,開啟TouchID系統會強制讓你設置密碼

b. “輸入密碼”按鈕應該蘋果提供給我們整合自己業務認證機制的入口,比如支付寶,支付的時候你可以通過TouchID指紋識別,也可以通過輸入支付密碼來完成支付

c. 為什麼需要TouchID指紋識別功能?個人認為TouchID這個功能不應該參與到APP的業務考慮場景中,不管你的設備有沒有TouchID,app應該都有自己的一套認證機制,這樣你的業務在有沒有TouchID的設備中才都能說得通,Android平台道理也是一樣的。至於TouchID這個功能,應該是一個附加的便利性功能,有了,那會跟方便,用戶體驗會跟好,沒有的話也沒有什麼影響。

 

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