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 8 SDK向开发者公开了Touch ID指纹识别功能,允许App对用户身份进行本地验证。使用TouchID...
    走在路上的小二阅读 4,547评论 0 4
  • 简述: 在类似支付宝为首的应用以及各种理财等涉及钱财对安全性要求较高的应用中,目前普遍对关键数据都做了安全访问限制...
    C_HPY阅读 8,179评论 0 18
  • 最近做项目版本更新有个需求是 3DTouch解锁功能, 由此原因接触 Apple的指纹解锁功能, 基本功能原先已经...
    JerseyBro阅读 5,338评论 0 4
  • 指纹识别: iPhone5S开始,推出指纹识别 iOS8.0之后苹果允许第三方 App 使用 Touch ID进行...
    a437e8f87a81阅读 5,205评论 0 17
  • 贝尼斯定理 员工既是消费品,也是投资品,工作是消费,培训是投资,员工培训是风险最小,收益最大的投资 具体的有效培训...
    沈青青阅读 1,319评论 0 2