创建LXFAuthentication类的.h和.m文件,继承自LAContext
.h代码如下:
//
// LXFAuthentication.h
// Test
//
// Created by 凌煊峰 on 2019/6/21.
// Copyright © 2019 凌煊峰. All rights reserved.
//
#import <LocalAuthentication/LocalAuthentication.h>
/**
* TouchID 状态
*/
typedef NS_ENUM(NSUInteger, LxfTouchIDState) {
/**
* 当前设备不支持TouchID
*/
LxfTouchIDStateNotSupport = 0,
/**
* TouchID 验证成功
*/
LxfTouchIDStateSuccess = 1,
/**
* TouchID 验证失败
*/
LxfTouchIDStateFail = 2,
/**
* TouchID 被用户手动取消
*/
LxfTouchIDStateUserCancel = 3,
/**
* 用户不使用TouchID,选择手动输入密码
*/
LxfTouchIDStateInputPassword = 4,
/**
* TouchID 被系统取消 (如遇到来电,锁屏,按了Home键等)
*/
LxfTouchIDStateSystemCancel = 5,
/**
* TouchID 无法启动,因为用户没有设置密码
*/
LxfTouchIDStatePasswordNotSet = 6,
/**
* TouchID 无法启动,因为用户没有设置TouchID
*/
LxfTouchIDStateTouchIDNotSet = 7,
/**
* TouchID 无效
*/
LxfTouchIDStateTouchIDNotAvailable = 8,
/**
* TouchID 被锁定(连续多次验证TouchID失败,系统需要用户手动输入密码)
*/
LxfTouchIDStateTouchIDLockout = 9,
/**
* 当前软件被挂起并取消了授权 (如App进入了后台等)
*/
LxfTouchIDStateAppCancel = 10,
/**
* 当前软件被挂起并取消了授权 (LAContext对象无效)
*/
LxfTouchIDStateInvalidContext = 11,
/**
* 系统版本不支持TouchID (必须高于iOS 8.0才能使用)
*/
LxfTouchIDStateVersionNotSupport = 12
};
typedef NS_ENUM(NSUInteger, LxfFaceIDState) {
LxfFaceIDStateSuccess = 0,
LxfFaceIDStateFail= 1
};
@interface LXFAuthentication : LAContext
typedef void (^StateBlock)(LxfTouchIDState state, NSError *error);
typedef void (^faceIDStateBlock)(LxfFaceIDState state, NSError