指紋解除

2654 ワード

原文の住所:http://blog.csdn.net/personsky/article/details/52413501
実現プロセス
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);

}