指紋解除
2654 ワード
原文の住所:http://blog.csdn.net/personsky/article/details/52413501
実現プロセス
1.まず指紋のロック解除に必要なヘッダファイルを導入する
1
この方法は、機器がTouchIDをサポートしているかどうかを判断するものです。
1
1
2
主な属性設定
//LAConteextの作成
実現プロセス
1.まず指紋のロック解除に必要なヘッダファイルを導入する
1
LocalAuthentication/LocalAuthentication.h
2.主な二つの方法を知る。この方法は、機器がTouchIDをサポートしているかどうかを判断するものです。
1
2- (BOOL)canEvaluatePolicy:(LAPolicy)policy error:(NSError * __autoreleasing *)
error__attribute__((swift_error(none)));
これはTouchIDを検証するためのもので、ボックスから飛び出すことがあります。1
2
3- (void)evaluatePolicy:(LAPolicy)policy
localizedReason:(NSString *)localizedReason
reply:(void(^)(BOOLsuccess, NSError * __nullable error))reply;
3.LAConteextオブジェクトの新規作成主な属性設定
localizedFallbackTitle: , Enter Password.
localizedReason: , Touch ID
/LAConteextの作成LAContext *context = [LAContextnew];//
context.localizedFallbackTitle = @" ";
4.主な方法は成功と失敗を含む。//LAConteextの作成
LAContext *context = [LAContext new]; //
context.localizedFallbackTitle = @" ";
NSError *error = nil;
if ([contextcanEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
error:&error]) {
NSLog(@" ");
[contextevaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
localizedReason:@" "reply:^(BOOL success, NSError * _Nullable error) {
if (success) {
NSLog(@" ");
_canPush = YES;
}else{
NSLog(@"%@",error.localizedDescription);
switch (error.code) {
case LAErrorSystemCancel:
{
NSLog(@" , APP ");
break;
}
case LAErrorUserCancel:
{
NSLog(@" TouchID");
break;
}
case LAErrorAuthenticationFailed:
{
NSLog(@" ");
break;
}
case LAErrorPasscodeNotSet:
{
NSLog(@" ");
break;
}
case LAErrorTouchIDNotAvailable:
{
NSLog(@" Touch ID , ");
break;
}
case LAErrorTouchIDNotEnrolled:
{
NSLog(@" Touch ID , ");
break;
}
case LAErrorUserFallback:
{
[[NSOperationQueue mainQueue]addOperationWithBlock:^{
NSLog(@" , ");
}];
break;
}
default:
{
[[NSOperationQueue mainQueue]addOperationWithBlock:^{
NSLog(@" , ");
}];
break;
}
}
}
}];
}else{
NSLog(@" ");
switch (error.code) {
case LAErrorTouchIDNotEnrolled:
{
NSLog(@"TouchID is notenrolled");
break;
}
case LAErrorPasscodeNotSet:
{
NSLog(@"A passcode has not beenset");
break;
}
default:
{
NSLog(@"TouchID not available");
break;
}
}
NSLog(@"%@",error.localizedDescription);
}