簡介
iOS8.0之后Touch ID的API開發(fā)給開發(fā),最低支持的機型為iPhone 5s穴豫,最低支持系統(tǒng)為ios 8,雖然安裝iOS 7系統(tǒng)的5s機型可以使用系統(tǒng)提供的指紋解鎖功能贬墩,但由于API并未開放,所以理論上第三方軟件不可使用妄呕。
依賴庫
#import <LocalAuthentication/LocalAuthentication.h>
實現(xiàn)過程
使用類
LAContext 指紋驗證操作對象判斷設備是否支持TouchID的
- (BOOL)canEvaluatePolicy:(LAPolicy)policy error:(NSError * __autoreleasing *)error __attribute__((swift_error(none)));
- 調(diào)用TouchID驗證
- (void)evaluatePolicy:(LAPolicy)policy
localizedReason:(NSString *)localizedReason
reply:(void(^)(BOOL success, NSError * __nullable error))reply;
- 屬性設置
localizedFallbackTitle:用于設置左邊的按鈕的名稱陶舞,默認是Enter Password.
localizedReason:用于設置提示語,表示為什么要使用Touch ID
代碼
//初始化上下文對象
LAContext* context = [[LAContext alloc] init];
//錯誤對象
NSError* error = nil;
//首先使用canEvaluatePolicy 判斷設備支持狀態(tài)
if ([context canEvaluatePolicy: LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error])
{
//支持指紋驗證
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
localizedReason:@"我要解鎖"
reply:^(BOOL succes, NSError *error) {
if (succes) {
//驗證成功绪励,返回主線程處理
NSLog(@"驗證成功");
dispatch_async(dispatch_get_main_queue(), ^{
backSucces(succes);
});
} else {
NSLog(@"驗證失敗");
NSLog(@"%@",error.localizedDescription);
}
}];
}else
{
NSLog(@"不支持指紋識別肿孵,LOG出錯誤詳情");
NSLog(@"%@",error.localizedDescription);
}