ios 10 指纹识别多次失败弹窗问题

       最近工作中遇到了一个问题,关于TouchId多次认证失败后,不能弹出系统输入密码的窗口。关于指纹识别的文章有很多,比如iOS Touch ID指纹识别(支付) - 。在iOS10之前,如上述的处理,在指纹密码6次(先4次,再2次)认证失败以后,就会自动调用出系统的输入密码框。但是,在iOS10中,当多次认证失败以后,如果只是简单的判断,就不能再调用出系统的输入密码框。

       这个问题主要体现在,在6次认证失败以后,TouchId会被锁定,返回的error中是Error Domain=com.apple.LocalAuthentication Code=-8"Biometry is locked out."UserInfo={NSLocalizedDescription=Biometry is locked out。此时,如果想再次点击指纹时弹出系统的输入密码框,需要再多做一步操作,如下:

##代码实现

```

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(@"产看原因%@", error);

}];

}

if(successBlock) {

successBlock(NO,error.code);

}

});

```

这样系统就会弹出密码输入框。初次写文章,如有不对之处,还请指正。

你可能感兴趣的:(ios 10 指纹识别多次失败弹窗问题)