美文网首页 Objective - C 开发那些事ios开发那些事
ios 10 指纹识别多次失败弹窗问题

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

作者: ZSL123 | 来源:发表于2016-11-09 10:01 被阅读641次

           最近工作中遇到了一个问题,关于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 指纹识别多次失败弹窗问题

        本文链接:https://www.haomeiwen.com/subject/hkrrettx.html