? ? ? ?最近工作中遇到了一個(gè)問題奴潘,關(guān)于TouchId多次認(rèn)證失敗后,不能彈出系統(tǒng)輸入密碼的窗口。關(guān)于指紋識別的文章有很多馏艾,比如iOS Touch ID指紋識別(支付) - 簡書。在iOS10之前,如上述的處理戳稽,在指紋密碼6次(先4次,再2次)認(rèn)證失敗以后坎背,就會自動調(diào)用出系統(tǒng)的輸入密碼框。但是,在iOS10中呜呐,當(dāng)多次認(rèn)證失敗以后,如果只是簡單的判斷庄岖,就不能再調(diào)用出系統(tǒng)的輸入密碼框优烧。
? ? ? ?這個(gè)問題主要體現(xiàn)在又沾,在6次認(rèn)證失敗以后,TouchId會被鎖定喂柒,返回的error中是Error?Domain=com.apple.LocalAuthentication?Code=-8"Biometry?is?locked?out."UserInfo={NSLocalizedDescription=Biometry?is?locked?out灾杰。此時(shí)昭娩,如果想再次點(diǎn)擊指紋時(shí)彈出系統(tǒng)的輸入密碼框磕诊,需要再多做一步操作,如下:
##代碼實(shí)現(xiàn)
```
dispatch_async(dispatch_get_main_queue(), ^{
LAContext*myContext=[[LAContextalloc]?init];
NSError*error=nil;
if([myContextcanEvaluatePolicy:LAPolicyDeviceOwnerAuthentication?error:&error])?{
[myContextevaluatePolicy:LAPolicyDeviceOwnerAuthentication?localizedReason:MYLOCALIZEDREASON?reply:^(BOOLsuccess,?NSError*_Nullable?error)?{
NSLog(@"產(chǎn)看原因%@",?error);
}];
}
if(successBlock)?{
successBlock(NO,error.code);
}
});
```
這樣系統(tǒng)就會彈出密碼輸入框目派。初次寫文章系馆,如有不對之處送漠,還請指正。