ios开发-指纹识别
最近我们使用支付宝类似软件的时候,发现可以使用指纹了,看起来是否的高大上。当时苹果推出了相关接口,让程序写起来很简单哈。
在iPhone5s的时候,苹果推出了指纹解锁。但是在ios8.0的时候苹果才推出相关的接口
所有我们需要判断硬件设备和ios系统版本是否支持
下面的例子是,先提示指纹识别,如果不支持或者主动取消,则需要手动输入密码认证
所以我们第一步需要判定系统版本,如果不支持,我们直接返回,即可
1 if ([UIDevice currentDevice].systemVersion.floatValue < 8.0) { 2 [self inputUserInfo]; 3 return; 4 }
第二步,判断手机是否支持指纹识别,我们要使用到一个LAContext类
1 //创建LAContext 2 LAContext *ctx = [[LAContext alloc] init]; 3 // 判断设备是否支持指纹识别 4 if ([ctx canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:NULL]) { 5 6 //识别代码部分 7 }
第三步,在第二步的“识别代码部分”填写正经的识别代码
1 //创建LAContext 2 LAContext *ctx = [[LAContext alloc] init]; 3 // 判断设备是否支持指纹识别 4 if ([ctx canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:NULL]) { 5 6 NSLog(@"请按手指"); 7 8 // 输入指纹 - 回调是异步的 9 [ctx evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"提示文字" reply:^(BOOL success, NSError *error) { 10 11 12 // 1. 如果输入成功 13 if (success) { 14 //成功 15 } else { 16 // 判断错误类型是否是主动自行输入密码 17 if (error.code == LAErrorUserFallback) { 18 dispatch_async(dispatch_get_main_queue(), ^{ 19 //密码验证方法 20 }); 21 } 22 } 23 }]; 24 } else { 25 26 //密码验证方法 27 }