美文网首页
iOS中 touch的相关开发

iOS中 touch的相关开发

作者: 7dfa9c18c1d1 | 来源:发表于2016-03-17 17:27 被阅读68次

苹果手机支持指纹输入,所有在开发过程的小伙伴们肯定碰到过 用touch代替输入密码的情况。今天在这写些关于touch的iOS开发,请大婶们指教

iOS中关于touch开发,需要导入两个系统头文件

#import <LocalAuthentication/LocalAuthentication.h>
  • 1、首先检查设备是否支持touch
- (BOOL)checkTouchID
{
    //初始化上下文对象
    LAContext * context = [[LAContext alloc] init];
    //检查设备是否支持touch
    if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:nil]) {
        // 支持
        return YES;
    }else{
        //不支持指纹识别
        return NO;
    }
}
  • 2、支持的话,请用户输入touch指纹
- (void)checkTouchID
{
    //初始化上下文对象
    LAContext * context = [[LAContext alloc] init];
    //检查设备是否支持touch
    if (![context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:nil]) {
        //不支持touch,直接返回
        return;
    }
    
    //指纹验证
    [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"touch" reply:^(BOOL success, NSError *error) {
        if (success) {
            //验证成功,主线程处理UI
            
        }else{
            switch (error.code) {
                case LAErrorSystemCancel:{
                    //切换到其他APP,系统取消验证Touch ID
                    break;
                }
                case LAErrorUserCancel:{
                    //用户取消验证Touch ID
                    break;
                }
                case LAErrorUserFallback:{
                     //用户选择输入密码,切换主线程处理
                    dispatch_async(dispatch_get_main_queue(), ^{
                        // 主线程处理UI
                    });
                    break;
                }
                default:
                    break;
            }
        }
    }];
}
  • 3、处理完毕后,笔者用block把值传回了控制器,下面是.m文件中的代码
- (void)isSupportTouch:(touchBlock)block
{
    //初始化上下文对象
    LAContext * context = [[LAContext alloc] init];
    //检查设备是否支持touch
    if (![context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:nil]) {
        //不支持touch,直接返回
        block(NO, @"设备不支持touch");
        return;
    }
    
    //指纹验证
    [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"touch" reply:^(BOOL success, NSError *error) {
        if (success) {
            //验证成功,主线程处理UI
            block(YES, @"验证成功");
        }else{
            switch (error.code) {
                case LAErrorSystemCancel:{
                    // 切换到其他APP,系统取消验证Touch ID
                    block(NO, @"系统取消验证Touch ID");
                    break;
                }
                case LAErrorUserCancel:{
                    //用户取消验证Touch ID
                    block(NO, @"用户取消验证Touch ID");
                    break;
                }
                case LAErrorUserFallback:{
                     //用户选择输入密码,切换主线程处理
                    dispatch_async(dispatch_get_main_queue(), ^{
                        // 主线程处理UI
                        block(NO, @"用户选择输入密码");
                    });
                    break;
                }
                default:{
                    block(NO, @"其他未知情况");
                }
                    break;
            }
        }
    }];
}
  • 4、控制器中代码和打印结果


    block传回给VC的值.png
  • 5、如果还有什么后续操作,就在回调中继续写吧

PS:自恋的贴出
[github地址][1]
[1]: https://github.com/liyang123/LYTouchDemo.git

相关文章

  • iOS中 touch的相关开发

    苹果手机支持指纹输入,所有在开发过程的小伙伴们肯定碰到过 用touch代替输入密码的情况。今天在这写些关于touc...

  • iOS开发框架介绍

    记录下相关框架介绍 iOS开发相关信息 iOS是运行于iPhone、iPod touch以及 iPad设备的操作系...

  • Cocoa Touch 框架

    Cocoa Touch 框架是iOS开发的基础,了解Cocoa Touch框架,对我们开发iOS软件有很大的帮助。...

  • 如何简单粗暴学习开发ios(3)

    #如何简单粗暴学习开发ios# 21)Cocoa Touch Cocoa Touch是用于开发iPhone、iPo...

  • iOS 12.1.3 更新

    iOS 12.1.1 SDK 支持运行iOS 12.1.3的iPhone,iPad,iPod touch设备开发的...

  • iOS开发自定义View布局子控件

    iOS开发中,- (void)layoutSubviews{}方法及相关方法注意点!! 文章着重介绍iOS开发中如...

  • iOS 12.1更新

    iOS 12.1 SDK 支持运行iOS 12.1的iPhone,iPad,iPod touch设备开发的应用程序...

  • 权限库升级了~

    关于权限相关的文章已经发了不少:iOS开发中的这些权限,你搞懂了吗?、如何获取iOS应用网络权限?、iOS开发中权...

  • Swift 2.0 异常处理

    如何建造异常类型? 在 iOS 开发当中,我们会面对很多异常处理。在 Cocoa Touch 中我们使用 NSEr...

  • iOS 3D touch开发 Force Properties-

    iOS 3D touch开发(三) Force Properties-按压力度 3D touch介绍 3D tou...

网友评论

      本文标题:iOS中 touch的相关开发

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