简单实现iOS指纹解锁(TouchID)
程序员文章站
2023-12-20 21:06:34
本文实例为大家分享了ios指纹解锁的具体代码,供大家参考,具体内容如下
1、首先,引入依赖框架 localauthentication.framework
#impor...
本文实例为大家分享了ios指纹解锁的具体代码,供大家参考,具体内容如下
1、首先,引入依赖框架 localauthentication.framework
#import <localauthentication/localauthentication.h>
2、然后,判断系统是否为ios8及以上
//ios8.0后才支持指纹识别接口 if ([uidevice currentdevice].systemversion.floatvalue < 8.0) { return; }
3、最后,在app启动时调用以下方法即可完成指纹解锁的全部功能集成
- (void)evaluateauthenticate { //创建lacontext lacontext* context = [[lacontext alloc] init]; nserror* error = nil; nsstring* result = @"请验证已有指纹"; //首先使用canevaluatepolicy 判断设备支持状态 if ([context canevaluatepolicy:lapolicydeviceownerauthenticationwithbiometrics error:&error]) { //支持指纹验证 [context evaluatepolicy:lapolicydeviceownerauthenticationwithbiometrics localizedreason:result reply:^(bool success, nserror *error) { if (success) { //验证成功,主线程处理ui } else { nslog(@"%@",error.localizeddescription); switch (error.code) { case laerrorsystemcancel: { //系统取消授权,如其他app切入 break; } case laerrorusercancel: { //用户取消验证touch id break; } case laerrorauthenticationfailed: { //授权失败 break; } case laerrorpasscodenotset: { //系统未设置密码 break; } case laerrortouchidnotavailable: { //设备touch id不可用,例如未打开 break; } case laerrortouchidnotenrolled: { //设备touch id不可用,用户未录入 break; } case laerroruserfallback: { [[nsoperationqueue mainqueue] addoperationwithblock:^{ //用户选择输入密码,切换主线程处理 }]; break; } default: { [[nsoperationqueue mainqueue] addoperationwithblock:^{ //其他情况,切换主线程处理 }]; break; } } } }]; } else { //不支持指纹识别,log出错误详情 nslog(@"不支持指纹识别"); switch (error.code) { case laerrortouchidnotenrolled: { nslog(@"touchid is not enrolled"); break; } case laerrorpasscodenotset: { nslog(@"a passcode has not been set"); break; } default: { nslog(@"touchid not available"); break; } } nslog(@"%@",error.localizeddescription); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。