• 指纹验证


    #import <LocalAuthentication/LocalAuthentication.h>

     

    - (IBAction)authenticateButtonTapped:(id)sender {

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

        context.localizedFallbackTitle = @"输入密码";

        NSError *error = nil;

        

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

            

            [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics

                    localizedReason:@"您是这设备的所有者吗?"

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

                                  if (success) {

                                      dispatch_async (dispatch_get_main_queue(), ^{

                                          

                                          UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Success"

                                                                                          message:@"你是设备主人。"

                                                                                         delegate:nil

                                                                                cancelButtonTitle:@"Ok"

                                                                                otherButtonTitles:nil];

                                          [alert show];

                                      });

                                      

                                  }else{

                                      

                                      

                                      /*

                                       // 用户未提供有效证书,(3次机会失败 --身份验证失败)

                                       LAErrorAuthenticationFailed = kLAErrorAuthenticationFailed,

                                       

                                       // 认证被取消,(用户点击取消按钮)

                                       LAErrorUserCancel           = kLAErrorUserCancel,

                                       

                                       // 认证被取消,用户点击回退按钮(输入密码)

                                       LAErrorUserFallback         = kLAErrorUserFallback,

                                       

                                       // 身份验证被系统取消,(比如另一个应用程序去前台)

                                       LAErrorSystemCancel         = kLAErrorSystemCancel,

                                       

                                       // 身份验证无法启动,因为密码在设备上没有设置。

                                       LAErrorPasscodeNotSet       = kLAErrorPasscodeNotSet,

                                       

                                       // 身份验证无法启动,因为触摸ID在设备上不可用。

                                       LAErrorTouchIDNotAvailable  = kLAErrorTouchIDNotAvailable,

                                       

                                       // 身份验证无法启动,因为没有登记的手指触摸ID 没有设置指纹密码时。

                                       LAErrorTouchIDNotEnrolled   = kLAErrorTouchIDNotEnrolled,

                                       **/

                                      switch (error.code) {

                                          case LAErrorAuthenticationFailed:

                                              NSLog(@"身份验证失败。");

                                              

                                              break;

                                              

                                          case LAErrorUserCancel:

                                              NSLog(@"用户点击取消按钮。");

                                              

                                              break;

                                              

                                          case LAErrorUserFallback:

                                              NSLog(@"用户点击输入密码。");

                                              

                                              break;

                                              

                                          case LAErrorSystemCancel:

                                              NSLog(@"另一个应用程序去前台");

                                              

                                              break;

                                              

                                          case LAErrorPasscodeNotSet:

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

                                              

                                              break;

                                              

                                          case LAErrorTouchIDNotAvailable:

                                              NSLog(@"触摸ID在设备上不可用");

                                              

                                              break;

                                              

                                          case LAErrorTouchIDNotEnrolled:

                                              NSLog(@"没有登记的手指触摸ID");

                                              

                                              break;

                                              

                                          default:

                                              NSLog(@"Touch ID没配置");

                                              

                                              break;

                                      }

                                  }

                              }];

            

        } else {

            dispatch_async (dispatch_get_main_queue(), ^{

                

                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"错误提示"

                                                                message:@"您的设备没有触摸ID."

                                                               delegate:nil

                                                      cancelButtonTitle:@"Ok"

                                                      otherButtonTitles:nil];

                [alert show];

            });

        }

        

    }

  • 相关阅读:
    Winform开发框架的业务对象统一调用方式
    淘宝API开发系列---阿里.聚石塔.开放平台的使用
    基于MVC4+EasyUI的Web开发框架形成之旅--权限控制
    Winform开发框架之附件管理应用
    Winform开发框架主界面设计展示
    基于MVC4+EasyUI的Web开发框架形成之旅--基类控制器CRUD的操作
    基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍
    基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用
    基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用
    在Winform开发框架中,利用DevExpress控件实现数据的快速录入和选择
  • 原文地址:https://www.cnblogs.com/yinyakun/p/4225531.html
Copyright © 2020-2023  润新知