写在前面的话,很忙的话,直接跳到第四点就好了
一、指纹识别是iphone 5 以后推出的,在ios 8.0+系统才能集成SDK,用起来炒鸡简单
二、必须用真机调试
三、使用场景
3.1 支付(建议使用)
3.2 登录(不建议使用)
为什么建议在支付的情况下使用指纹:1)快速,减少用户犹豫的时间
2)支付之前用户必须登录,绑定了银行卡 和身份证 只需要密码或指纹进行二次验证身份
四、代码
#import <LocalAuthentication/LocalAuthentication.h>
- (void)viewDidLoad {
[super viewDidLoad];
//指纹识别
[self laContext];
}
- (void)laContext {
LAContext * ctx = [[LAContext alloc]init];
//判断设备是否支持指纹识别
if ([ctx canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:NULL]) {
NSLog(@"支持");
//输入指纹
[ctxevaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"指纹支付(此处是提示信息,自定义)" reply:^(BOOL success, NSError * _Nullable error) {
//success 为1,就成功
NSLog(@"%d %@",success,error);
}];
}else{
NSLog(@"不支持");
}
}
4.1 上面方法的error 是指纹识别的错误信息
/* 指纹识别的错误信息
LAErrorAuthenticationFailed --- 指纹无法识别
LAErrorUserCancel --- 用户点击了"取消"
LAErrorUserFallback --- 用户点击了"输入密码"
LAErrorSystemCancel --- 系统取消,比如激活了其他应用(用户) 退到后台等
LAErrorPasscodeNotSet --- 因为设备上没有设置密码
LAErrorTouchIDNotAvailable --- 设备没有Touch ID
LAErrorTouchIDNotEnrolled --- 因为用户没有输入指纹
LAErrorTouchIDLockout --- 多次输入错误,密码锁定
LAErrorAppCancel --- 比如电话进来,用户不可控的
*/