您的位置:首页 > 移动开发 > IOS开发

iOS 指纹验证

2016-06-30 18:21 453 查看
#import
<LocalAuthentication/LocalAuthentication.h>

/**

 *  指纹验证

 */

- (void)authenticateUser {

   
//初始化上下文对象

   
LAContext* context = [[LAContext
alloc] init];

   
//错误对象

    NSError* error =
nil;

   
NSString* result =
@"指纹验证";//Authentication is needed to access
your notes.

    

   
//首先使用canEvaluatePolicy
判断设备支持状态

   
if ([context
canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
error:&error]) {

        //支持指纹验证

        [context
evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
localizedReason:result
reply:^(BOOL success,
NSError *error) {

            if (success) {

                //验证成功,主线程处理UI

                NSLog(@"//验证成功,主线程处理UI");

            }else{

                NSLog(@"%@",error.localizedDescription);

                switch (error.code) {

                   
case LAErrorSystemCancel:

                    {

//                        NSLog(@"Authentication was cancelled by the system");

                       
//切换到其他APP,系统取消验证Touch ID

                        
NSLog(@"切换到其他APP,系统取消验证Touch
ID");

                       
break;

                    }

                   
case LAErrorUserCancel:

                    {

//                        NSLog(@"Authentication was cancelled by the user");

                       
NSLog(@"用户取消验证Touch IDD");

                       
//用户取消验证Touch ID

                       
break;

                    }

                   
case LAErrorUserFallback:

                    {

                       
NSLog(@"User selected to enter custom password");

                        [[NSOperationQueue
mainQueue] addOperationWithBlock:^{

                           
NSLog(@"用户选择输入密码,切换主线程处理");

                            

                        }];

                       
break;

                    }

                   
default:

                    {

                        [[NSOperationQueue
mainQueue] addOperationWithBlock:^{

                           
NSLog(@"其他情况,切换主线程处理");

                           
//其他情况,切换主线程处理

                        }];

                       
break;

                    }

                }

            }

        }];

    }else{

       
//不支持指纹识别,LOG出错误详情

        

        switch (error.code) {

           
case
LAErrorTouchIDNotEnrolled:

            {

               
// TouchID is not enrolled

                NSLog(@"TouchID
未注册");

                break;

            }

           
case
LAErrorPasscodeNotSet:

            {

               
//  A passcode has not been set

                NSLog(@"没有设置密码");

                break;

            }

            default:

            {

               
// TouchID not available

                NSLog(@"TouchID不可用");

                break;

            }

        }

        

       
NSLog(@"%@",error.localizedDescription);

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: