产品需要新加指纹验证功能。然后看了下相关的文档。
- (BOOL)canEvaluatePolicy:(LAPolicy)policy error:(NSError * __autoreleasing *)error attribute((swift_error(none)));
判断设备是否支持指纹验证
- (void)evaluatePolicy:(LAPolicy)policy localizedReason:(NSString *)localizedReason reply:(void(^)(BOOL success, NSError * __nullable error))reply;
调用指纹验证
这里重点说明下policy这个参数。这个参数是个枚举类型,有下面两种情况
LAPolicyDeviceOwnerAuthenticationWithBiometrics
这个是iOS8以后可以调用的。注意:正常情况下指纹验证失败次数过多(ps:超过 3+2 次)的话,会导致touchID被锁,继续调用指纹解锁的话会弹出系统的密码输入框,输入正确之后可以继续验证指纹。但是在iOS10系统下面是不会弹出系统的密码输入框的,所以导致touchID一直被锁住。
LAPolicyDeviceOwnerAuthentication
这个的使用需要iOS9以上,这个是指纹或数字密码验证,指纹验证失败2次之后会弹出系统的密码输入框,密码输入错误6次之后会和设备解锁失败一样锁定设备一段时间。
为了避免LAPolicyDeviceOwnerAuthenticationWithBiometrics在iOS10上的问题,我的处理方式是在iOS9以上使用LAPolicyDeviceOwnerAuthentication这种验证方式,不过相信苹果马上会解决这个问题的。
网友评论