美文网首页
指纹解锁方法的封装

指纹解锁方法的封装

作者: 需要帮助的乘客 | 来源:发表于2016-11-30 13:40 被阅读0次

由于最近在项目中很多处都需要使用指纹验证  最好的办法就是封装起来  以下是我用block封装的类方法

Appledelegate.h

@interface AppDelegate : UIResponder

+(void)sureUserWith:(void (^)())successBlock failBlock:(void (^)(NSString *errorMessage,BOOL isAlt))failBlock;

@end

Appledelegate.m

+(void)sureUserWith:(void (^)())successBlock failBlock:(void (^)(NSString *errorMessage,BOOL isAlt))failBlock;

{

[SVProgressHUD show];

//初始化上下文对象

LAContext* context = [[LAContext alloc] init];

context.localizedFallbackTitle = @"";

//错误对象

NSError* error = nil;

NSString* result = @"通过Home键验证已有手机指纹";

//首先使用canEvaluatePolicy 判断设备支持状态

if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {

//支持指纹验证

[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:result reply:^(BOOL success, NSError *error) {

if (success) {

//验证成功,主线程处理UI

[[NSOperationQueue mainQueue] addOperationWithBlock:^{

successBlock();

}];

}

else

{

[SVProgressHUD dismiss];

NSLog(@"%@",error.localizedDescription);

switch (error.code) {

case LAErrorSystemCancel:

{

failBlock(@"切换到其他APP,系统取消验证Touch ID",NO);

//切换到其他APP,系统取消验证Touch ID

break;

}

case LAErrorUserCancel:

{

failBlock(@"用户取消验证Touch ID",NO);

//用户取消验证Touch ID

break;

}

case LAErrorUserFallback:

{

NSLog(@"User selected to enter custom password");

[[NSOperationQueue mainQueue] addOperationWithBlock:^{

//用户选择其他验证方式,切换主线程处理

}];

break;

}

default:

{

[[NSOperationQueue mainQueue] addOperationWithBlock:^{

//其他情况,切换主线程处理

//多次错误

failBlock(@"您已多次错误,请重新登录",YES);

}];

break;

}

}

}

}];

}

else

{

//不支持指纹识别,LOG出错误详情

switch (error.code) {

case LAErrorTouchIDNotEnrolled:

{

failBlock(@"设备不支持指纹解锁",NO);

break;

}

case LAErrorPasscodeNotSet:

{

failBlock(@"设备未设置指纹解锁",NO);

break;

}

case -8:

{

failBlock(@"系统指纹已被锁定,请选择其他登录方式",YES);

break;

}

case -1:

{

//连续错误三次

[SVProgressHUD dismiss];

failBlock(@"抱歉,您未能通过Touch ID指纹验证!",YES);

break;

}

default:

{

failBlock(@"设备未设置touchId",NO);

break;

}

}

}

}

有不足的地方还希望大家能指正以下~

相关文章

  • 指纹解锁方法的封装

    由于最近在项目中很多处都需要使用指纹验证 最好的办法就是封装起来 以下是我用block封装的类方法 Applede...

  • 指纹解锁功能LAContext的使用

    通过LAContext的使用,调用系统指纹解锁功能来实现APP的解锁。 代码封装接口文件.h 实现文件.m 封装类使用

  • 手势&指纹解锁

    手势&指纹解锁Github传送门 Tip:将手势与指纹解锁进行了一层封装,致力于打造出最简便的使用方式 准备工作 ...

  • iOS指纹解锁和手势解锁

    iOS指纹解锁和手势解锁 iOS指纹解锁和手势解锁

  • Android-指纹解锁技术

    什么是指纹解锁技术 指纹解锁技术原理理解 指纹解锁技术的优势和缺点 在Android中的应用开发 什么是指纹解锁技...

  • Android指纹解锁功能封装

    指纹解锁 Android从6.0版本开始,提供了指纹解锁的api。本文使用api中的FingerprintMana...

  • 项目需求讨论- 让APP知道是用哪个指纹来支付和解锁

    以前我写过相关的指纹解锁的文章: 传送门: 项目需求讨论-APP手势解锁及指纹解锁那时候做的APP解锁是调用系统的...

  • iOS15实现面容ID解锁和指纹解锁

    iOS15实现面容ID解锁和指纹解锁

  • iOS 指纹解锁

    前言:随着指纹解锁的普及,越来越多的应用开始使用指纹解锁、指纹支付.不过作为iOS开发,这倒不难,因为苹果为我们封...

  • iOS指纹解锁

    苹果iPhone5s后开始推出指纹解锁功能,很大的提升了用户在密码解锁中的用户体验,而且苹果的指纹解锁技术不但操作...

网友评论

      本文标题:指纹解锁方法的封装

      本文链接:https://www.haomeiwen.com/subject/fxhtmttx.html