• 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博客园看到本文,请点击查看原文.

  • 相关阅读:
    一个web程序员的年终总结
    编程要诀-心态
    初识vps,域名与购买,初步配置
    一个好的学习方法真的很重要——费曼学习法
    [译]C# 7系列,Part 8: in Parameters in参数
    Dalsa 8K彩色相机Camera link C#采图
    精简Command版SqlHelper
    ASP.NET MVC模块化开发——动态挂载外部项目
    net core WebApi——依赖注入Autofac
    .NET Core 3 WPF MVVM框架 Prism系列之命令
  • 原文地址:https://www.cnblogs.com/wb145230/p/4659193.html
Copyright © 2020-2023  润新知