
序言
在iOS 8系統(tǒng)開發(fā)的時(shí)候,蘋果官方就開始開放了Touch ID的驗(yàn)證接口功能,這樣開發(fā)人員就可以在應(yīng)用程序中判斷輸入的Touch ID 是否是持有者的Touch ID.當(dāng)然了,只能驗(yàn)證成功與否,卻不能得到具體的信息.
準(zhǔn)備工作
- 首先我們需要在系統(tǒng)設(shè)置的"Touch ID 與密碼"這個(gè)選項(xiàng)中保存我們的指紋信息.
2.在Xcode中,我們需要導(dǎo)入對(duì)應(yīng)的庫.庫名和示意圖如下.
LocalAuthentication.framework

添加位置
Touch ID驗(yàn)證實(shí)現(xiàn)
- 如下,LocalAuthentication.framework中提供了兩個(gè)方法,我們看一下,這個(gè)方法分別的作用.
//這個(gè)方法是用來判斷是否能夠驗(yàn)證Touch ID
canEvaluatePolicy: error:
//這個(gè)方法是用來驗(yàn)證Touch ID,localizedReason后面跟的是驗(yàn)證過程中提示用戶的字符串,reply后面自帶著Bolck,我們可以對(duì)驗(yàn)證完成之后做出相應(yīng)的操作.
evaluatePolicy: localizedReason: reply:
- 整個(gè)代碼部分我是寫在ViewController里面,用一個(gè)Button來調(diào)用Touch ID的驗(yàn)證事件,當(dāng)然,首先我們需要導(dǎo)入LocalAuthentication框架.
#import <LocalAuthentication/LocalAuthentication.h>
驗(yàn)證事件實(shí)現(xiàn)部分如下
//驗(yàn)證事件
- (IBAction)touchAction:(id)sender {
LAContext *context = [[LAContext alloc]init];
NSError *error = nil;
if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"請(qǐng)驗(yàn)證您的Touch ID" reply:^(BOOL success, NSError * _Nullable error) {
if (success) {
tipWithMessage(@"驗(yàn)證成功!");
}else{
tipWithMessage(@"驗(yàn)證失敗!");
}
}];
}else{
NSLog(@"%@",error);
}
}
#pragma mark ---- 自定義宏彈窗 -----
NS_INLINE void tipWithMessage(NSString *message){
dispatch_async(dispatch_get_main_queue(), ^{
UIAlertView *alerView = [[UIAlertView alloc] initWithTitle:@"提示" message:message delegate:nil cancelButtonTitle:nil otherButtonTitles:nil, nil];
[alerView show];
[alerView performSelector:@selector(dismissWithClickedButtonIndex:animated:) withObject:@[@0, @1] afterDelay:0.9];
});
}
我們看一下真機(jī)測(cè)試效果如何(模擬器根本就不行??)....
開始驗(yàn)證Touch ID
驗(yàn)證失敗,重新驗(yàn)證
當(dāng)然了,最后還是要附上Touch ID驗(yàn)證的Demo.以備不時(shí)之需,希望這篇文章能對(duì)您有所幫助.如果有問題,可以在下面的評(píng)論區(qū)提出,我會(huì)及時(shí)回復(fù)您的,謝謝.