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:LAPolicyDeviceOwnerAuthenticationWithBiometricslocalizedReason:myLocalizedReasonStringreply:^(BOOL success, NSError *error) {if (success) {// User authenticated successfully, take appropriate actionNSLog(@"指紋認證成功");returnCode = @"1";} else {// User did not authenticate successfully, look at error and take appropriate actionNSLog(@"指紋認證失敗,%@",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 userNSLog(@"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這個功能,應該是一個附加的便利性功能,有了,那會跟方便,用戶體驗會跟好,沒有的話也沒有什么影響。
?
轉載于:https://www.cnblogs.com/jager/p/5241012.html
總結
- 上一篇: 作业四 | 个人项目-小学四则运算 “软
- 下一篇: 清除浮动方式总结