你还在为开发TouchID/FaceID识别功能而去翻阅大量的文档吗?
使用YZAuthID仅需一个回调方法即可轻松实现指纹/面容ID的验证识别功能,该项目支持Pods便于项目构建,可前往https://github.com/micyo202/YZAuthID下载源码运行查看效果。
认证原理这里我就不多做阐述了,先来看一下示例效果图:
使用方法
1、引入
- 使用CocoaPods方式:
pod 'YZAuthID'
-
手动引入方式:将
YZAuthID
文件夹下所有的文件拖入工程,在需要使用的地方引入#import "YZAuthID.h"
头文件即可
2、编码
使用前记得在info.plist中增加NSFaceIDUsageDescription
权限申请说明,否则无法使用FaceID。
代码中只需调用yz_showAuthIDWithDescribe:block:
一个方法即可实现全部功能,简易实现代码如下:
[[YZAuthID alloc] yz_showAuthIDWithDescribe:nil block:^(YZAuthIDState state, NSError *error) {
if (state == YZAuthIDStateNotSupport) {
NSLog(@"对不起,当前设备不支持指纹/面部ID");
} else if(state == YZAuthIDStateFail) {
NSLog(@"指纹/面部ID不正确,认证失败");
} else if(state == YZAuthIDStateTouchIDLockout) {
NSLog(@"多次错误,指纹/面部ID已被锁定,请到手机解锁界面输入密码");
} else if (state == YZAuthIDStateSuccess) {
NSLog(@"认证成功!");
}
}];
返回YZAuthIDState各状态值介绍描述,可根据需求进行自行判断处理:
/**
* 当前设备不支持TouchID/FaceID
*/
YZAuthIDStateNotSupport = 0,
/**
* TouchID/FaceID 验证成功
*/
YZAuthIDStateSuccess = 1,
/**
* TouchID/FaceID 验证失败
*/
YZAuthIDStateFail = 2,
/**
* TouchID/FaceID 被用户手动取消
*/
YZAuthIDStateUserCancel = 3,
/**
* 用户不使用TouchID/FaceID,选择手动输入密码
*/
YZAuthIDStateInputPassword = 4,
/**
* TouchID/FaceID 被系统取消 (如遇到来电,锁屏,按了Home键等)
*/
YZAuthIDStateSystemCancel = 5,
/**
* TouchID/FaceID 无法启动,因为用户没有设置密码
*/
YZAuthIDStatePasswordNotSet = 6,
/**
* TouchID/FaceID 无法启动,因为用户没有设置TouchID/FaceID
*/
YZAuthIDStateTouchIDNotSet = 7,
/**
* TouchID/FaceID 无效
*/
YZAuthIDStateTouchIDNotAvailable = 8,
/**
* TouchID/FaceID 被锁定(连续多次验证TouchID/FaceID失败,系统需要用户手动输入密码)
*/
YZAuthIDStateTouchIDLockout = 9,
/**
* 当前软件被挂起并取消了授权 (如App进入了后台等)
*/
YZAuthIDStateAppCancel = 10,
/**
* 当前软件被挂起并取消了授权 (LAContext对象无效)
*/
YZAuthIDStateInvalidContext = 11,
/**
* 系统版本不支持TouchID/FaceID (必须高于iOS 8.0才能使用)
*/
YZAuthIDStateVersionNotSupport = 12
到此整个认证过程就完成了,怎么样?是不是很Easy?如果有什么疑问或更好的建议欢迎留言!