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

  • 相关阅读:
    Pyton 练习题2
    Python 知识点练习
    pycharm 汉化
    关于sublime编辑Python的安装与配置
    python练习题
    虚短和虚断
    OSI的7层协议
    5V电压的制作
    三角波,方波,正弦波的转换
    单片机不工作,晶振是否起振怎么检查
  • 原文地址:https://www.cnblogs.com/luorende/p/5880190.html
Copyright © 2011-2022 走看看