IOS指纹识别调用
最近正在開發(fā)的一個(gè)app需要加入指紋識(shí)別的功能,先搜索一下找到官方文檔,簡(jiǎn)單易懂:
https://developer.apple.com/library/ios/documentation/LocalAuthentication/Reference/LocalAuthentication_Framework/index.html#classes
指紋識(shí)別主要的目的應(yīng)該是判斷當(dāng)前用戶是否機(jī)主,寫了個(gè)demo簡(jiǎn)單體驗(yàn)下:
1 首先需要引入指紋識(shí)別庫(kù)
2 引入庫(kù)
#import "LocalAuthentication/LAContext.h"3 關(guān)鍵代碼
LAContext *myContext = [[LAContext alloc] init];NSError *authError = nil;NSString *myLocalizedReasonString = @"We need to verify your fingerprint to confirm your identity";// 判斷設(shè)備是否支持指紋識(shí)別if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {// 指紋識(shí)別只判斷當(dāng)前用戶是否機(jī)主[myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometricslocalizedReason:myLocalizedReasonStringreply:^(BOOL success, NSError *error) {if (success) {// User authenticated successfully, take appropriate actionNSLog(@"指紋認(rèn)證成功");returnCode = @"1";} else {// User did not authenticate successfully, look at error and take appropriate actionNSLog(@"指紋認(rèn)證失敗,%@",error.description);// 錯(cuò)誤碼 error.code// -1: 連續(xù)三次指紋識(shí)別錯(cuò)誤// -2: 在TouchID對(duì)話框中點(diǎn)擊了取消按鈕// -3: 在TouchID對(duì)話框中點(diǎn)擊了輸入密碼按鈕// -4: TouchID對(duì)話框被系統(tǒng)取消,例如按下Home或者電源鍵// -8: 連續(xù)五次指紋識(shí)別錯(cuò)誤,TouchID功能被鎖定,下一次需要輸入系統(tǒng)密碼returnCode = [@(error.code) stringValue];}}];} else {// Could not evaluate policy; look at authError and present an appropriate message to userNSLog(@"TouchID設(shè)備不可用");// TouchID沒(méi)有設(shè)置指紋// 關(guān)閉密碼(系統(tǒng)如果沒(méi)有設(shè)置密碼TouchID無(wú)法啟用)}4 搞定!
5 FAQ
指紋認(rèn)證失敗之后TouchID對(duì)話框中會(huì)出現(xiàn)一個(gè)“輸入密碼”的按鈕,本來(lái)以為點(diǎn)擊了這個(gè)按鈕應(yīng)該會(huì)彈出系統(tǒng)的輸入密碼界面,但是實(shí)際上并沒(méi)有,error.code的值是-3,之后便有很多疑問(wèn),比如“如果系統(tǒng)沒(méi)有設(shè)置密碼怎么辦?”,“能不能把這個(gè)輸入密碼按鈕去掉或者改成取消按鈕”,“我為什么需要TouchID,好像沒(méi)有什么意義”。。
經(jīng)過(guò)測(cè)試得到以下結(jié)論:
a. 系統(tǒng)如果沒(méi)有設(shè)置密碼,TouchID便無(wú)法啟用,開啟TouchID系統(tǒng)會(huì)強(qiáng)制讓你設(shè)置密碼
b. “輸入密碼”按鈕應(yīng)該蘋果提供給我們整合自己業(yè)務(wù)認(rèn)證機(jī)制的入口,比如支付寶,支付的時(shí)候你可以通過(guò)TouchID指紋識(shí)別,也可以通過(guò)輸入支付密碼來(lái)完成支付
c. 為什么需要TouchID指紋識(shí)別功能?個(gè)人認(rèn)為TouchID這個(gè)功能不應(yīng)該參與到APP的業(yè)務(wù)考慮場(chǎng)景中,不管你的設(shè)備有沒(méi)有TouchID,app應(yīng)該都有自己的一套認(rèn)證機(jī)制,這樣你的業(yè)務(wù)在有沒(méi)有TouchID的設(shè)備中才都能說(shuō)得通,Android平臺(tái)道理也是一樣的。至于TouchID這個(gè)功能,應(yīng)該是一個(gè)附加的便利性功能,有了,那會(huì)跟方便,用戶體驗(yàn)會(huì)跟好,沒(méi)有的話也沒(méi)有什么影響。
?
轉(zhuǎn)載于:https://www.cnblogs.com/jager/p/5241012.html
總結(jié)
- 上一篇: 作业四 | 个人项目-小学四则运算 “软
- 下一篇: 清除浮动方式总结