iOS8 指纹识别集成

来源:互联网 发布:开淘宝店设计思路 编辑:程序博客网 时间:2024/06/06 05:12

1. 引入库

#import <LocalAuthentication/LocalAuthentication.h>


2. 实例化对象

    LAContext *context = [[LAContextalloc] init];

    NSError *error = nil;

    context.localizedFallbackTitle =@"手动输入密码";// 验证失败时,会多提供一个按钮,一般用于提供手动输入的接口

    context.maxBiometryFailures =@10; // 验证失败的最大次数,但不超过5


3. 判断指纹识别是否可用

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

        [selfevaluateWithTouchID:context];

    } else {

        switch (error.code) {

            caseLAErrorTouchIDNotAvailable: //设备本身不支持,iphone5

                break;

            caseLAErrorTouchIDNotEnrolled//没有设置指纹密码

                break;

            caseLAErrorPasscodeNotSet: // Touch ID功能处于被禁用状态

                break;

        }

    }


4. 调用系统方法进行指纹识别

- (void)evaluateWithTouchID:(LAContext *)context {

    __block NSString *message = nil;

    [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics

            localizedReason:@"为了您信息的安全,请验证指纹"

                     reply:^(BOOL success,NSError *error) {

                         if (success) {

                              message =@"成功";

                          }else if (error.code ==LAErrorUserCancel) {

                              message =@"取消";

                          }else if (error.code ==LAErrorUserFallback) {

                              message =@"手动输入密码";

                             // 可以在此弹出手动密码输入界面

                          }else if (error.code ==LAErrorAuthenticationFailed) {

                              message =@"指纹不匹配";

                          }else if (error.code ==LAErrorSystemCancel) {

                              message =@"系统取消";

                          }

                          

                          dispatch_async(dispatch_get_main_queue(), ^{

                              [[[UIAlertViewalloc] initWithTitle:@"提示"

                                                         message:message

                                                        delegate:nil

                                               cancelButtonTitle:@"cacle"

                                               otherButtonTitles:nil]show];

                          });

    }];

    


}



0 0