iOS 指紋登錄以及注意事項

現(xiàn)在主要的登錄方式主要有以下幾種:

1:賬號密碼登錄晨汹;

2:指紋登錄;

3:手勢登錄;

4:面部識別讲婚;

5:聲音識別赵哲;

這篇文章就具體說下指紋登錄的實現(xiàn)以及其中的坑嘹狞。功能看起來很簡單,因為蘋果都封裝好了誓竿,只是有幾個需要注意的點磅网;

1.實現(xiàn)

1.1?首先引入指紋解鎖必須的頭文件

#import <?LocalAuthentication/LocalAuthentication.h>

1.2 判斷設備是否支付TouchID方法

-?(BOOL)canEvaluatePolicy:(LAPolicy)policy?error:(NSError?*?__autoreleasing?*)

error?__attribute__((swift_error(none)));

1.3?驗證TouchID方法

-?(void)evaluatePolicy:(LAPolicy)policy

???????localizedReason:(NSString?*)localizedReason

?????????????????reply:(void(^)(BOOLsuccess,?NSError?*?__nullable?error))reply;

1.4 具體實現(xiàn)代碼


? //初始化上下文對象

? ? LAContext* context = [[LAContext alloc] init];

? ? //這個設置的使用密碼的字體,當text=@""時筷屡,按鈕將被隱藏

? ? context.localizedFallbackTitle = @"手動輸入密碼";

? ? //這個設置的取消按鈕的字體

? ? context.localizedCancelTitle = @"取消";

? ? //錯誤對象

? ? NSError* error =nil;

? ? NSString* result = @"需要驗證您的touch ID";

? ? //首先使用canEvaluatePolicy 判斷設備支持狀態(tài)

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

? //支持指紋驗證

? ? ? ? [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:result reply:^(BOOL success, NSError *error) {

? ? ? ? ? ? if(success) {

? ? ? ? ? ? ? ? //驗證成功涧偷,主線程處理UI

?? ? ? ? ? ? ? ? NSLog(@"驗證成功 刷新主界面");

? ? ? ? ? ? }? ?else? {

? ? ? ? ? ? ? ? NSLog(@"%@",error.localizedDescription);

? ? ? ? ? ? ? ? switch(error.code) {

? ? ? ? ? ? ? ? ? ? caseLAErrorSystemCancel: {

? ? ? ? ? ? ? ? ? ? ? ? NSLog(@"系統(tǒng)取消授權簸喂,如其他APP切入");

? ? ? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? caseLAErrorUserCancel: {

? ? ? ? ? ? ? ? ? ? ? ? NSLog(@"用戶取消驗證Touch ID");

? ? ? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? case LAErrorAuthenticationFailed: {

? ? ? ? ? ? ? ? ? ? ? ? NSLog(@"授權失敗");

? ? ? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? caseLAErrorPasscodeNotSet:? {

? ? ? ? ? ? ? ? ? ? ? ? NSLog(@"系統(tǒng)未設置密碼");

? ? ? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? case LAErrorTouchIDNotAvailable:? ?{

? ? ? ? ? ? ? ? ? ? ? ? NSLog(@"設備Touch ID不可用,例如未打開");

? ? ? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? case LAErrorTouchIDNotEnrolled: {

? ? ? ? ? ? ? ? ? ? ? ? NSLog(@"設備Touch ID不可用燎潮,用戶未錄入");

? ? ? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? caseLAErrorTouchIDLockout: {

? ? ? ? ? ? ? ? ? ? ? ? NSLog(@"用戶錯誤次數(shù)太多喻鳄,現(xiàn)在被鎖住了");

? ? ? ? ? ? ? ? ? ? ? ? [self startTouchIDWithPolicy:LAPolicyDeviceOwnerAuthentication];

? ? ? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? caseLAErrorUserFallback: {

? ? ? ? ? ? ? ? ? ? ? ? [[NSOperationQueuemainQueue]addOperationWithBlock:^{

? ? ? ? ? ? ? ? ? ? ? ? ? ? NSLog(@"用戶選擇輸入密碼,切換主線程處理");

? ? ? ? ? ? ? ? ? ? ? ? }];

? ? ? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? default: {

? ? ? ? ? ? ? ? ? ? ? ? [[NSOperationQueuemainQueue]addOperationWithBlock:^{

? ? ? ? ? ? ? ? ? ? ? ? ? ? NSLog(@"其他情況确封,切換主線程處理");

? ? ? ? ? ? ? ? ? ? ? ? }];

? ? ? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }];

? ? } else {

? ? ? ? //不支持指紋識別除呵,LOG出錯誤詳情

? ? ? ? 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);

? ? }


2.注意事項

2.1?localizedFallbackTitle

localizedFallbackTitle只有第一次指紋輸入錯誤后才會顯示出來。


2.2 ?LAPolicy

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

LAPolicyDeviceOwnerAuthenticationWithBiometrics和LAPolicyDeviceOwnerAuthentication.

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

<2>.LAPolicyDeviceOwnerAuthentication是支持iOS9以上系統(tǒng),使用該設備的TouchID或設備密碼進行驗證,當輸入TouchID驗證3次失敗后秉剑,會觸發(fā)設備密碼頁面進行驗證泛豪,此時點擊取消可以繼續(xù)進行TouchID驗證,不過此次只有2次機會侦鹏,驗證失敗后诡曙,TouchID被鎖定,觸發(fā)設備密碼頁面進行驗證略水。

* 但是使用LAPolicyDeviceOwnerAuthentication點擊手動輸入密碼按鈕也會觸發(fā)設備密碼頁面价卤,不會回調(diào)evaluatePolicy里面的方法。


最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末渊涝,一起剝皮案震驚了整個濱河市慎璧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌驶赏,老刑警劉巖炸卑,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異煤傍,居然都是意外死亡盖文,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門蚯姆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來五续,“玉大人,你說我怎么就攤上這事龄恋「砑荩” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵郭毕,是天一觀的道長它碎。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么扳肛? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任傻挂,我火速辦了婚禮,結(jié)果婚禮上挖息,老公的妹妹穿的比我還像新娘金拒。我一直安慰自己,他們只是感情好套腹,可當我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布绪抛。 她就那樣靜靜地躺著,像睡著了一般电禀。 火紅的嫁衣襯著肌膚如雪幢码。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天鞭呕,我揣著相機與錄音蛤育,去河邊找鬼宛官。 笑死葫松,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的底洗。 我是一名探鬼主播腋么,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼亥揖!你這毒婦竟也來了珊擂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤费变,失蹤者是張志新(化名)和其女友劉穎摧扇,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挚歧,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡扛稽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了滑负。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片在张。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖矮慕,靈堂內(nèi)的尸體忽然破棺而出帮匾,到底是詐尸還是另有隱情,我是刑警寧澤痴鳄,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布瘟斜,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏螺句。R本人自食惡果不足惜明未,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望壹蔓。 院中可真熱鬧趟妥,春花似錦、人聲如沸佣蓉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽勇凭。三九已至疚膊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間虾标,已是汗流浹背寓盗。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留璧函,地道東北人傀蚌。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像蘸吓,于是被迫代替她去往敵國和親善炫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,884評論 2 354