美文网首页
Touch ID解锁

Touch ID解锁

作者: Blunet | 来源:发表于2016-07-15 10:07 被阅读0次

1>>>导入库#import<LocalAuthentication/LocalAuthentication.h>

2>>>viewDidLoad中做初始化对象和验证是否支持Touch ID解锁的操作:

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

NSError* error = nil;

/*ios 8.0以上才支持

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {

}

或者下面*/

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

[self doSomeAuthWith:context];

}

else {//不支持touch ID解锁

NSLog(@"==========Not support :%@", error.description);

}

3>>>自定义的方法doSomeAuthWith:(LAContext *)someThing方法内部做进一步操作和判定

- (void)doSomeAuthWith:(LAContext *)someThing

{

LAContext * myContext = (LAContext *)someThing;

myContext.localizedFallbackTitle = @"输入密码";

NSError *authError = nil;

NSString *myLocalizedReasonString = @"用于解除系统锁定!";

if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError])

{

[myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics

localizedReason:myLocalizedReasonString

reply:^(BOOL success, NSError *error) {

if(success)

{

//处理验证通过

NSLog(@"指纹验证通过");

}

else

{

//处理验证失败

NSLog(@"%@",[self getAuthErrorDescription:error.code] );

}

}];

}

else

{

//不支持Touch ID验证,提示用户

}

}

4>>>方法getAuthErrorDescription:(NSInteger)code通过传入错误码返回具体失败原因

- (NSString *)getAuthErrorDescription:(NSInteger)code

{

NSString *msg = @"";

switch (code) {

case LAErrorTouchIDNotEnrolled:

//认证不能开始,因为touch id没有录入指纹.

msg = @"此设备未录入指纹信息!";

break;

case LAErrorTouchIDNotAvailable:

//认证不能开始,因为touch id在此台设备尚是无效的.

msg = @"此设备不支持Touch ID!";

break;

case LAErrorPasscodeNotSet:

//认证不能开始,因为此台设备没有设置密码.

msg = @"未设置密码,无法开启认证!";

break;

case LAErrorSystemCancel:

//认证被系统取消了,例如其他的应用程序到前台了

msg = @"系统取消认证";

break;

case LAErrorUserFallback:

//认证被取消,因为用户点击了fallback按钮(输入密码).

msg = @"选择输入密码!";

break;

case LAErrorUserCancel:

//认证被用户取消,例如点击了cancel按钮.

msg = @"取消认证!";

break;

case LAErrorAuthenticationFailed:

//认证没有成功,因为用户没有成功的提供一个有效的认证资格

msg = @"认证失败!";

break;

default:

break;

}

return msg;

}

相关文章

  • Touch ID解锁

    1>>>导入库#import...

  • Touch ID

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

  • iOS 填坑之Touch ID与Face ID

    一、Touch ID 2013年随iPhone 5s面世,Apple开启了,Touch ID解锁在移动终端上的使用...

  • Touch ID 指纹解锁

    网上关于指纹解锁的教程很多了,我的处理上和他们有点区别,在这里说一下。 首先导入LocalAuthenticati...

  • iOS --- Touch ID指纹解锁

    最近在项目中刚好用到了TouchId指纹解锁功能,之前也没有接触过,立马百度看看究竟是要如何使用,发现其实也不是很...

  • iOS开发-Touch ID指纹解锁

    导语 苹果在iPhone 5s之后添加了Touch ID指纹识别功能,用户可以通过指纹来对iPhone进行安全而高...

  • iOS开发-Touch ID指纹解锁

    导语苹果在iPhone 5s之后添加了Touch ID指纹识别功能,用户可以通过指纹来对iPhone进行安全而高效...

  • 使用 Swift 实现 Touch ID (指纹解锁)

    在 iPhone 5s 之后,Home 键有了指纹解锁功能。这给我们提供了了一种既安全又方便的的解锁方式。 载入 ...

  • 睁着眼睛睡觉的人,能解锁iPhoneX吗?槽点有点大~

    睡法君今天就问大家:打算买iPhoneX吗? iphoneX这次最大的吸引力 一定是原先的Touch ID指纹解锁...

  • Touch ID

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

网友评论

      本文标题:Touch ID解锁

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