zoukankan      html  css  js  c++  java
  • 指纹验证

    #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];

            });

        }

        

    }

  • 相关阅读:
    【java开发需要的环境资源以及开发工具】慢慢更新
    【如何编写有质量代码】【转】
    base——JavaSE&&JavaEE&&JavaME的区别【Java中常用的包结构】
    Mysqlsql——And【sql语句之为何用and一个字段两个值得不到表中的数据】
    Struts2——执行流程
    base——本地资源路径&&网络资源路径&&正反斜杠在Java中的用法
    base——new File(String Path)加载资源问题
    2019-06-11_Python中文编码
    2019-06-11-Python简介
    2019-06-05 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.taotao.search.mapper.SearchItemMapper.getItemList
  • 原文地址:https://www.cnblogs.com/yinyakun/p/4225531.html
Copyright © 2011-2022 走看看