你還在為開發(fā)TouchID/FaceID識別功能而去翻閱大量的文檔嗎?
使用YZAuthID僅需一個(gè)回調(diào)方法即可輕松實(shí)現(xiàn)指紋/面容ID的驗(yàn)證識別功能,該項(xiàng)目支持Pods便于項(xiàng)目構(gòu)建,可前往https://github.com/micyo202/YZAuthID下載源碼運(yùn)行查看效果。
認(rèn)證原理這里我就不多做闡述了,先來看一下示例效果圖:

指紋認(rèn)證界面

指紋認(rèn)證開始

指紋認(rèn)證失敗

面容認(rèn)證界面

面容認(rèn)證開始

面容認(rèn)證失敗
使用方法
1、引入
- 使用CocoaPods方式:
pod 'YZAuthID' -
手動引入方式:將
YZAuthID文件夾下所有的文件拖入工程,在需要使用的地方引入#import "YZAuthID.h"頭文件即可
2、編碼
使用前記得在info.plist中增加NSFaceIDUsageDescription權(quán)限申請說明,否則無法使用FaceID。
代碼中只需調(diào)用yz_showAuthIDWithDescribe:block:一個(gè)方法即可實(shí)現(xiàn)全部功能,簡易實(shí)現(xiàn)代碼如下:
[[YZAuthID alloc] yz_showAuthIDWithDescribe:nil block:^(YZAuthIDState state, NSError *error) {
if (state == YZAuthIDStateNotSupport) {
NSLog(@"對不起,當(dāng)前設(shè)備不支持指紋/面部ID");
} else if(state == YZAuthIDStateFail) {
NSLog(@"指紋/面部ID不正確,認(rèn)證失敗");
} else if(state == YZAuthIDStateTouchIDLockout) {
NSLog(@"多次錯(cuò)誤,指紋/面部ID已被鎖定,請到手機(jī)解鎖界面輸入密碼");
} else if (state == YZAuthIDStateSuccess) {
NSLog(@"認(rèn)證成功!");
}
}];
返回YZAuthIDState各狀態(tài)值介紹描述,可根據(jù)需求進(jìn)行自行判斷處理:
/**
* 當(dāng)前設(shè)備不支持TouchID/FaceID
*/
YZAuthIDStateNotSupport = 0,
/**
* TouchID/FaceID 驗(yàn)證成功
*/
YZAuthIDStateSuccess = 1,
/**
* TouchID/FaceID 驗(yàn)證失敗
*/
YZAuthIDStateFail = 2,
/**
* TouchID/FaceID 被用戶手動取消
*/
YZAuthIDStateUserCancel = 3,
/**
* 用戶不使用TouchID/FaceID,選擇手動輸入密碼
*/
YZAuthIDStateInputPassword = 4,
/**
* TouchID/FaceID 被系統(tǒng)取消 (如遇到來電,鎖屏,按了Home鍵等)
*/
YZAuthIDStateSystemCancel = 5,
/**
* TouchID/FaceID 無法啟動,因?yàn)橛脩魶]有設(shè)置密碼
*/
YZAuthIDStatePasswordNotSet = 6,
/**
* TouchID/FaceID 無法啟動,因?yàn)橛脩魶]有設(shè)置TouchID/FaceID
*/
YZAuthIDStateTouchIDNotSet = 7,
/**
* TouchID/FaceID 無效
*/
YZAuthIDStateTouchIDNotAvailable = 8,
/**
* TouchID/FaceID 被鎖定(連續(xù)多次驗(yàn)證TouchID/FaceID失敗,系統(tǒng)需要用戶手動輸入密碼)
*/
YZAuthIDStateTouchIDLockout = 9,
/**
* 當(dāng)前軟件被掛起并取消了授權(quán) (如App進(jìn)入了后臺等)
*/
YZAuthIDStateAppCancel = 10,
/**
* 當(dāng)前軟件被掛起并取消了授權(quán) (LAContext對象無效)
*/
YZAuthIDStateInvalidContext = 11,
/**
* 系統(tǒng)版本不支持TouchID/FaceID (必須高于iOS 8.0才能使用)
*/
YZAuthIDStateVersionNotSupport = 12
到此整個(gè)認(rèn)證過程就完成了,怎么樣?是不是很Easy?如果有什么疑問或更好的建議歡迎留言!