你還在為開(kāi)發(fā)TouchID/FaceID識(shí)別功能而去翻閱大量的文檔嗎?
使用YZAuthID僅需一個(gè)回調(diào)方法即可輕松實(shí)現(xiàn)指紋/面容ID的驗(yàn)證識(shí)別功能,該項(xiàng)目支持Pods便于項(xiàng)目構(gòu)建苇经,可前往https://github.com/micyo202/YZAuthID下載源碼運(yùn)行查看效果。
認(rèn)證原理這里我就不多做闡述了宦言,先來(lái)看一下示例效果圖:
使用方法
1扇单、引入
- 使用CocoaPods方式:
pod 'YZAuthID'
-
手動(dòng)引入方式:將
YZAuthID
文件夾下所有的文件拖入工程,在需要使用的地方引入#import "YZAuthID.h"
頭文件即可
2奠旺、編碼
使用前記得在info.plist中增加NSFaceIDUsageDescription
權(quán)限申請(qǐng)說(shuō)明蜘澜,否則無(wú)法使用FaceID。
代碼中只需調(diào)用yz_showAuthIDWithDescribe:block:
一個(gè)方法即可實(shí)現(xiàn)全部功能凉倚,簡(jiǎn)易實(shí)現(xiàn)代碼如下:
[[YZAuthID alloc] yz_showAuthIDWithDescribe:nil block:^(YZAuthIDState state, NSError *error) {
if (state == YZAuthIDStateNotSupport) {
NSLog(@"對(duì)不起兼都,當(dāng)前設(shè)備不支持指紋/面部ID");
} else if(state == YZAuthIDStateFail) {
NSLog(@"指紋/面部ID不正確,認(rèn)證失敗");
} else if(state == YZAuthIDStateTouchIDLockout) {
NSLog(@"多次錯(cuò)誤稽寒,指紋/面部ID已被鎖定,請(qǐng)到手機(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 被用戶手動(dòng)取消
*/
YZAuthIDStateUserCancel = 3,
/**
* 用戶不使用TouchID/FaceID,選擇手動(dòng)輸入密碼
*/
YZAuthIDStateInputPassword = 4,
/**
* TouchID/FaceID 被系統(tǒng)取消 (如遇到來(lái)電,鎖屏,按了Home鍵等)
*/
YZAuthIDStateSystemCancel = 5,
/**
* TouchID/FaceID 無(wú)法啟動(dòng),因?yàn)橛脩魶](méi)有設(shè)置密碼
*/
YZAuthIDStatePasswordNotSet = 6,
/**
* TouchID/FaceID 無(wú)法啟動(dòng),因?yàn)橛脩魶](méi)有設(shè)置TouchID/FaceID
*/
YZAuthIDStateTouchIDNotSet = 7,
/**
* TouchID/FaceID 無(wú)效
*/
YZAuthIDStateTouchIDNotAvailable = 8,
/**
* TouchID/FaceID 被鎖定(連續(xù)多次驗(yàn)證TouchID/FaceID失敗,系統(tǒng)需要用戶手動(dòng)輸入密碼)
*/
YZAuthIDStateTouchIDLockout = 9,
/**
* 當(dāng)前軟件被掛起并取消了授權(quán) (如App進(jìn)入了后臺(tái)等)
*/
YZAuthIDStateAppCancel = 10,
/**
* 當(dāng)前軟件被掛起并取消了授權(quán) (LAContext對(duì)象無(wú)效)
*/
YZAuthIDStateInvalidContext = 11,
/**
* 系統(tǒng)版本不支持TouchID/FaceID (必須高于iOS 8.0才能使用)
*/
YZAuthIDStateVersionNotSupport = 12
到此整個(gè)認(rèn)證過(guò)程就完成了,怎么樣蚓土?是不是很Easy宏侍?如果有什么疑問(wèn)或更好的建議歡迎留言!