美文网首页
加入Touch Id

加入Touch Id

作者: 请叫我平爷 | 来源:发表于2016-03-03 09:47 被阅读54次

1、引入头文件import <LocalAuthentication/LocalAuthentication>

2、.h中定义好:typedef void(^TouchIdValidationFailureBack)(LAError result);

.m中可以封装一下:

- (void)evaluatePolicy:(NSString *)localizedReason fallbackTitle:(NSString *)title SuccesResult:(void(^)())backSucces FailureResult:(TouchIdValidationFailureBack)backFailure

{

LAContext* context = [[LAContext alloc] init];//初始化上下文对象

NSError* error = nil;//错误对象

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

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

{

//支持指纹验证

[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics

localizedReason:localizedReason

reply:

^(BOOL succes, NSError *error) {

if (succes) {

NSLog(@"验证成功");//验证成功,返回主线程处理

dispatch_async(dispatch_get_main_queue(), ^{

backSucces(succes);

});

} else {

NSLog(@"验证失败");

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

dispatch_async(dispatch_get_main_queue(), ^{

backFailure(error.code);

});

}

}];

}else

{

NSLog(@"不支持指纹识别,LOG出错误详情");

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

dispatch_async(dispatch_get_main_queue(), ^{

backFailure(error.code);

});

}

}

3、返回错误类型

typedef NS_ENUM(NSInteger, LAError)

{

//授权失败

LAErrorAuthenticationFailed = kLAErrorAuthenticationFailed,

//用户取消Touch ID授权

LAErrorUserCancel          = kLAErrorUserCancel,

//用户选择输入密码

LAErrorUserFallback        = kLAErrorUserFallback,

//系统取消授权(例如其他APP切入)

LAErrorSystemCancel        = kLAErrorSystemCancel,

//系统未设置密码

LAErrorPasscodeNotSet      = kLAErrorPasscodeNotSet,

//设备Touch ID不可用,例如未打开

LAErrorTouchIDNotAvailable  = kLAErrorTouchIDNotAvailable,

//设备Touch ID不可用,用户未录入

LAErrorTouchIDNotEnrolled  = kLAErrorTouchIDNotEnrolled,

} NS_ENUM_AVAILABLE(10_10, 8_0);

iOS9中加入了新的错误类型:

LAErrorTouchIDLockout:iOS8.0也有这个错误的出现,这个错误出现,源自用户多次连续使用Touch ID失败,Touch ID被锁,需要用户输入密码解锁,这个错误的交互LocalAuthentication.framework已经封装好了,不需要开发者关心。

LAErrorAppCancel和LAErrorSystemCancel相似,都是当前软件被挂起取消了授权,但是前者是用户不能控制的挂起,例如突然来了电话,电话应用进入前台,APP被挂起。后者是用户自己切到了别的应用,例如按home键挂起。

LAErrorInvalidContext很好理解,就是授权过程中,LAContext对象被释放掉了,造成的授权失败。

相关文章

  • 加入Touch Id

    1、引入头文件import 2...

  • iOS Touch ID 开发

    Touch ID Touch ID是iPhone5S后加入的一项新的功能,也就是大家熟知的指纹识别技术。大家用得最...

  • Touch ID 开发

    Touch ID Touch ID是iPhone5S后加入的一项新的功能,也就是大家熟知的指纹识别技术。大家用得最...

  • iOS Touch ID <指纹识别>

    Touch ID Touch ID是iPhone5S后加入的一项新的功能,也就是大家熟知的指纹识别技术。大家用得最...

  • Touch ID

    1.引入LocalAuthentication.framework库,并导入头文件 2.判断设备是否支持Touch...

  • Touch ID

    } (void)authentication{LAContext * zrContext = [[LAContex...

  • Touch ID

    使用iOS 8 SDK添加Touch ID指纹识别功能 - Puzhi的专栏 - 博客频道 - CS...

  • Touch ID

    Touch ID简单介绍 iOS系统的指纹识别功能最低支持的机型为iPhone 5s,最低支持系统为 ...

  • Touch ID

    这是在IOS上验证用户身份的操作,使用Local Authentication框架,在这个框架里每种验证用户身份的...

  • Touch ID

    借鉴了Touch ID - 简书 touch id 即指纹解锁,最低支持机型iPhone5s,系统版本8.0以上....

网友评论

      本文标题:加入Touch Id

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