前言:
隨著指紋解鎖的普及,越來越多的應(yīng)用開始使用指紋解鎖羡棵、指紋支付.不過作為iOS開發(fā),這倒不難,因?yàn)樘O果為我們封裝好了框架,我們只需調(diào)用接口就可以啦!
首先 導(dǎo)入```#import <LocalAuthentication/LocalAuthentication.h>
//創(chuàng)建LAContext對(duì)象
LAContext *context = [LAContext new];
//設(shè)置指紋輸入失敗之后的彈出框的屬性
context.localizedFallbackTitle = @"選擇手動(dòng)輸入密碼";
NSError *error = nil;
if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
NSLog(@"此設(shè)備支持指紋識(shí)別");
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"請(qǐng)按home鍵進(jìn)行指紋解鎖" reply:^(BOOL success, NSError * _Nullable error) {
if (success) {
//解鎖成功,進(jìn)入頁面
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
NSLog(@"驗(yàn)證成功 刷新主界面");
}];
}else{
NSLog(@"%@",error.localizedDescription);
switch (error.code) {
case LAErrorSystemCancel:
{
NSLog(@"系統(tǒng)取消授權(quán),其他app切入等等");
break;
}
case LAErrorUserCancel:
{
NSLog(@"用戶取消驗(yàn)證Touch ID");
// 用戶不愿使用指紋解鎖,換用其他操作
break;
}
case LAErrorAuthenticationFailed:
{
NSLog(@"授權(quán)失敗");
break;
}
case LAErrorPasscodeNotSet:
{
NSLog(@"系統(tǒng)未設(shè)置密碼");
break;
}
case LAErrorTouchIDNotAvailable:
{
NSLog(@"設(shè)備Touch ID不可用寄锐,例如未打開");
break;
}
case LAErrorTouchIDNotEnrolled:
{
NSLog(@"設(shè)備Touch ID不可用,用戶未錄入");
break;
}
case LAErrorUserFallback:
{
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
NSLog(@"用戶選擇輸入密碼矢空,切換主線程處理");
}];
break;
}
default:
{
break;
}
}
}
}];
}else{
NSLog(@"不支持指紋識(shí)別");
switch (error.code) {
case LAErrorTouchIDNotEnrolled:
{
NSLog(@"TouchID is not enrolled");
break;
}
case LAErrorPasscodeNotSet:
{
NSLog(@"A passcode has not been set");
break;
}
default:
{
NSLog(@"TouchID not available");
break;
}
}
NSLog(@"%@",error.localizedDescription);
}
}