zoukankan      html  css  js  c++  java
  • iOS

    //

    //  ViewController.m

    //  TouchID指纹验证

    //

    //  Created by apple on 16/9/18.

    //  Copyright © 2016 apple. All rights reserved.

    //

     

    #import "ViewController.h"

    #import "HomeViewController.h"//跳转成功后需要跳转到的视图控制器

    #import <LocalAuthentication/LocalAuthentication.h>//导入TouchID需要的类库

    #import <sys/utsname.h> //获取设备基本信息需要的类库

    @interface ViewController ()

     

    @end

     

    @implementation ViewController

     

    - (void)viewDidLoad {

        [super viewDidLoad];

     

        [self touchID];

    }

     

    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

    {

        //调用TouchID会执行此方法,有需要可以实现一些另外的功能

    }

     

    - (void)touchID {

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

        NSError *error = nil;

        // 第一步判断是否支持Touch ID 或者 本机是否已经录入指纹

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

            [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"请验证已有指纹" reply:^(BOOL success, NSError * _Nullable error) {

                if (error) {

                    NSLog(@"验证失败"); // 系统会自动给错误提示

                }else{

                    dispatch_async(dispatch_get_main_queue(), ^{

                        // 指纹验证成功后跳转

                        HomeViewController *home = [[HomeViewController alloc] init];

                        [self presentViewController:home animated:YES completion:nil];

                    });

                }

            }];

        }else {

            // 判断是否真机运行

            if (self.isSimulator) {

                [[[UIAlertView alloc] initWithTitle:@"提示" message:@"请用真机测试~" delegate:nil cancelButtonTitle:@"好的" otherButtonTitles:nil, nil] show];

            }else{

                [[[UIAlertView alloc] initWithTitle:@"提示" message:@"不支持Touch ID~" delegate:nil cancelButtonTitle:@"好的" otherButtonTitles:nil, nil] show];

            }

        }

    }

    // 判断当前设备是否支持TouchID功能

    - (BOOL)isSimulator{

        struct utsname systemInfo;

        uname(&systemInfo);

        NSString *deviceMachine = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];

        if ([deviceMachine isEqualToString:@"i386"] || [deviceMachine isEqualToString:@"x86_64"])       {

            return YES;

        }

        return NO;

    }

     

    - (void)didReceiveMemoryWarning {

        [super didReceiveMemoryWarning];

        // Dispose of any resources that can be recreated.

    }

     

     

    @end

  • 相关阅读:
    10K+,深度学习论文、代码最全汇总!
    机器学习人气开源项目推荐
    目标检测入门
    论文 | YOLO(You Only Look Once)目标检测
    基于深度学习的「目标检测」算法综述
    皮卡丘检测器-CNN目标检测入门教程
    GitHub万星的ML算法面试大全
    物体检测之FPN及Mask R-CNN
    新型DenseBody框架:一张照片获得3D人体信息
    数据挖掘相关领域竞赛推荐
  • 原文地址:https://www.cnblogs.com/luorende/p/5880190.html
Copyright © 2011-2022 走看看