zoukankan      html  css  js  c++  java
  • iOS Touch ID使用

    1.首先导入头文件

    #import <LocalAuthentication/LocalAuthentication.h>

    2.关键代码

    - (void)validateTouchID {
        LAContext *context = [[LAContext alloc] init];
        NSError *error;
        NSString *tip = @"通过Home键验证已有手机指纹";
        //  判断手机是否有指纹
        if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
            [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:tip reply:^(BOOL success, NSError *error) {
                if (success) {
                    //  验证成功
                    NSLog(@"success");
                } else {
                    NSLog(@"%@",error.description);
                    switch (error.code) {
                        case LAErrorSystemCancel:
                            NSLog(@"系统取消授权");
                            break;
                        case LAErrorUserCancel:
                            NSLog(@"用户取消");
                            break;
                        case LAErrorUserFallback:
                            NSLog(@"用户输入密码");
                            break;
                        default:
                            break;
                    }
                }
            }];
        } else {
            NSLog(@"不支持指纹识别,%@",error.description);
        }
    }

    3.LAError枚举相关解释

    typedef NS_ENUM(NSInteger, LAError) {
        /// 认证不成功,因为用户没有提供有效的凭据
        LAErrorAuthenticationFailed = kLAErrorAuthenticationFailed,
        
        /// 被用户取消验证(例如:“取消”按钮)。
        LAErrorUserCancel           = kLAErrorUserCancel,
        
        /// 认证被取消了,因为用户点击回退按钮(输入密码)。
        LAErrorUserFallback         = kLAErrorUserFallback,
        
        /// 通过系统(例如另一个应用程序的应用程序)被取消验证。
        LAErrorSystemCancel         = kLAErrorSystemCancel,
        
        /// 认证无法启动,因为密码没有设置在设备。
        LAErrorPasscodeNotSet       = kLAErrorPasscodeNotSet,
    
        /// 无法启动验证,因为在设备上不提供触摸标识。
        LAErrorTouchIDNotAvailable  = kLAErrorTouchIDNotAvailable,
        
        /// 无法启动验证,因为触摸标识没有注册手指。
        LAErrorTouchIDNotEnrolled   = kLAErrorTouchIDNotEnrolled,
    } NS_ENUM_AVAILABLE(10_10, 8_0);

    4.效果图

    如果你不是在wb145230博客园看到本文,请点击查看原文.

  • 相关阅读:
    Git centos 6.5 搭建(gitosis)
    error at ::0 can't find referenced pointcut xxx
    MySql 主从配置
    svn 搭建
    Flatbuffers学习
    python3 获取函数变量
    pyqt5 重启相同线程错误:QThread: Destroyed while thread is still running
    WIN10 使用注册表设置单应用KIOSK模式(不限win10版本)
    WIN10 使用POWERSHELL 设置单应用KIOSK模式(win10家庭版或企业版)
    py文件加密打包成exe文件
  • 原文地址:https://www.cnblogs.com/wb145230/p/4659193.html
Copyright © 2011-2022 走看看