简单实现iOS指纹解锁(TouchID)
本文实例为大家分享了iOS指纹解锁的具体代码,供大家参考,具体内容如下
1、首先,引入依赖框架LocalAuthentication.framework
#import<LocalAuthentication/LocalAuthentication.h>
2、然后,判断系统是否为iOS8及以上
//iOS8.0后才支持指纹识别接口
if([UIDevicecurrentDevice].systemVersion.floatValue<8.0){
return;
}
3、最后,在APP启动时调用以下方法即可完成指纹解锁的全部功能集成
-(void)evaluateAuthenticate
{
//创建LAContext
LAContext*context=[[LAContextalloc]init];
NSError*error=nil;
NSString*result=@"请验证已有指纹";
//首先使用canEvaluatePolicy判断设备支持状态
if([contextcanEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometricserror:&error]){
//支持指纹验证
[contextevaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometricslocalizedReason:resultreply:^(BOOLsuccess,NSError*error){
if(success){
//验证成功,主线程处理UI
}
else
{
NSLog(@"%@",error.localizedDescription);
switch(error.code){
caseLAErrorSystemCancel:
{
//系统取消授权,如其他APP切入
break;
}
caseLAErrorUserCancel:
{
//用户取消验证TouchID
break;
}
caseLAErrorAuthenticationFailed:
{
//授权失败
break;
}
caseLAErrorPasscodeNotSet:
{
//系统未设置密码
break;
}
caseLAErrorTouchIDNotAvailable:
{
//设备TouchID不可用,例如未打开
break;
}
caseLAErrorTouchIDNotEnrolled:
{
//设备TouchID不可用,用户未录入
break;
}
caseLAErrorUserFallback:
{
[[NSOperationQueuemainQueue]addOperationWithBlock:^{
//用户选择输入密码,切换主线程处理
}];
break;
}
default:
{
[[NSOperationQueuemainQueue]addOperationWithBlock:^{
//其他情况,切换主线程处理
}];
break;
}
}
}
}];
}
else
{
//不支持指纹识别,LOG出错误详情
NSLog(@"不支持指纹识别");
switch(error.code){
caseLAErrorTouchIDNotEnrolled:
{
NSLog(@"TouchIDisnotenrolled");
break;
}
caseLAErrorPasscodeNotSet:
{
NSLog(@"Apasscodehasnotbeenset");
break;
}
default:
{
NSLog(@"TouchIDnotavailable");
break;
}
}
NSLog(@"%@",error.localizedDescription);
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
