IOS 指纹识别详解及实例代码

IOS 指纹识别详解及实例代码

一、什么是IOS指纹识别?

指纹识别是一种生物识别技术,它通过采集用户的指纹信息,并对其进行特征提取和匹配,从而实现身份认证功能,是IOS系统的一个重要功能。

二、怎么使用IOS指纹识别?

IOS指纹识别可以通过以下步骤实现:

1.引入依赖

在Xcode的项目中,需要添加LocalAuthentication库的依赖,通过在Build Phases中的Link Binary With Libraries中添加。

2.实现代码

在需要实现指纹识别功能的地方,调用以下代码:

let context = LAContext()
var error:NSError?
if context.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error:&error) {
    context.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: "解锁认证", reply: {
        (success: Bool, authenticationError: NSError?) -> Void in
            if success{
                //指纹认证成功
            }
            else{
                //指纹认证失败
            }
        })
}
else{
    //设备不支持指纹识别或指纹识别未启用
}

三、指纹识别的实例代码

以下是两个示例说明:

示例1:指纹识别

这个示例是一个简单的指纹识别应用,用于检测是否可以使用指纹识别,并在认证成功后输出结果。

func checkTouchID(){
    let touchIDcontext = LAContext()
    var error: NSError?
    if(touchIDcontext.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error)){
        touchIDcontext.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: "指纹识别", reply: {(success, error)->Void in DispatchQueue.main.async(execute: {
            if success{
                self.success()
            }else{
                self.failure(error: error)
            }
        })})
    }else{
        self.failure(error: error)
    }
}

示例2:指纹识别进阶

这个示例是一个指纹识别进阶应用,除了在认证成功后输出结果外,还增加了多次验证失败后跳转到密码验证的功能。

func checkTouchIDWithPassword(){
    let touchIDcontext = LAContext()
    var error: NSError?
    if(touchIDcontext.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error)){
        touchIDcontext.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: "指纹识别", reply: {(success, error)->Void in
            DispatchQueue.main.async(execute: {
                if success{
                    self.success()
                }else{
                    if let touchError = error as? NSError{
                        switch touchError.code{
                        case LAError.Code.systemCancel.rawValue:
                            fallthrough
                        case LAError.Code.userCancel.rawValue:
                            self.password()
                        default:
                            self.failure(error: error)
                        }
                    }
                }
            })
        })
    }else{
        self.failure(error: error)
    }
}

func password(){
    DispatchQueue.main.async(execute: {
        let alert = UIAlertController(title: "Touch ID Failed", message: "Failed", preferredStyle: .alert)
        let cancel = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
        let pass = UIAlertAction(title: "Password", style: .default, handler: {(action: UIAlertAction) -> Void in
            if let textField = alert.textFields?.first{
                if let password = textField.text{
                    self.authWithPassword(password: password)
                }
            }
        })
        alert.addTextField(configurationHandler: {(textField: UITextField)-> Void in
            textField.placeholder = "请输入密码"
            textField.isSecureTextEntry = true
        })
        alert.addAction(cancel)
        alert.addAction(pass)
        self.present(alert, animated: true, completion: nil)
    })
}

func authWithPassword(password: String){
    if password == "123456"{
        self.success()
    }else{
        self.failure(error: NSError(domain: "验证失败", code: -1, userInfo: nil))
    }
}

以上便是IOS指纹识别的详细攻略及实例代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:IOS 指纹识别详解及实例代码 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • 查看tomcat的版本号

    查看Tomcat的版本号 Tomcat是一款常用的Java Web应用服务器,其版本号常常需要我们在使用中进行查看。本文将介绍如何通过Tomcat的管理界面和命令行两种方式来查看Tomcat的版本号。 通过管理界面查看Tomcat版本号 打开Tomcat的管理界面,在浏览器地址栏中输入http://localhost:8080/manager并回车,如果提示…

    其他 2023年3月28日
    00
  • 2018版java多线程面试题集合及答案

    2018版Java多线程面试题集合及答案攻略 介绍 在Java开发中,多线程是一个非常重要的概念。掌握多线程的知识对于面试来说是必不可少的。本攻略将详细讲解2018版Java多线程面试题集合及答案,帮助你更好地准备面试。 问题1:什么是线程?Java中如何创建线程? 答案: 线程是程序执行的一条路径,是进程中的一个执行单元。在Java中,有两种方式创建线程:…

    other 2023年8月2日
    00
  • 如何重启打印机打印服务

    当打印机出现故障导致无法正确打印时,我们需要重启打印机打印服务以恢复正常打印功能。以下是如何重启打印机打印服务的完整攻略: 第一步:打开服务管理器 我们需要打开Windows系统中的服务管理器来重启打印机打印服务。具体方法如下: 按下“Windows键+R”组合键打开“运行”窗口。 在弹出的窗口中输入“services.msc”并点击“确定”按钮。 第二步:…

    other 2023年6月27日
    00
  • 黑客攻击数据库的六大手段

    黑客攻击数据库的六大手段 数据库作为网站的重要组成部分,是黑客攻击的重点目标之一。黑客利用各种手段来攻击数据库,获取网站敏感信息,造成严重后果。以下介绍黑客攻击数据库的六大手段以及相应的防范措施。 1. SQL注入攻击 SQL注入攻击是通过在输入框中输入恶意SQL语句,使得数据库执行非预期的操作而导致数据泄露或者系统瘫痪。黑客通常通过输入一些特殊字符(如单引…

    other 2023年6月27日
    00
  • 设置个性qq邮箱格式账号的方法以手机号邮箱账号为例

    设置个性QQ邮箱格式账号的方法以手机号码的邮箱账号为例,其具体操作步骤如下: 打开QQ邮箱网页版,进入登录页面。 在登录框中输入已注册的手机号码邮箱账号和密码,然后登录。 进入QQ邮箱的主界面后,在页面右上角找到“设置”选项,然后点击它。 在设置页面中,找到“账户”选项卡,然后点击它。 在账户选项卡下,找到“账号信息”中的“修改账号”选项,并点击它。 在弹出…

    other 2023年6月27日
    00
  • iframe里的页面禁止右键事件的方法

    要禁止在iframe里的页面上进行右键事件,有多种方法可以实现。下面是两种示例方法: 方法一:使用JavaScript代码 使用JavaScript代码可以禁用右键事件,代码如下: document.oncontextmenu = function () { return false; } 以上代码将可以直接在想要禁用右键事件的页面的<script&g…

    other 2023年6月27日
    00
  • 小米5s plus怎么重启 小米5s plus重启教程

    小米5s Plus怎么重启 如果你的小米5s Plus出现了故障或者其他问题,可能需要对它进行重启。重启可以解决很多常见问题,比如应用程序崩溃、设备运行缓慢和其他一些错误。下面是小米5s Plus的重启教程。 方法一:软重启 软重启是最简单的方法,它不会引起数据丢失。这意味着你的所有应用程序、照片、联系人、文档和其他数据都将保持不变。下面是重启小米5s Pl…

    other 2023年6月27日
    00
  • 网卡MAC地址是什么?如何修改网卡MAC地址

    网卡MAC地址是什么? 网卡MAC地址(Media Access Control address)是一个唯一的标识符,用于识别网络设备(如计算机、手机、路由器等)在局域网中的身份。MAC地址由48位二进制数表示,通常以十六进制的形式显示。 MAC地址由两部分组成:前24位是厂商识别码(OUI,Organizationally Unique Identifie…

    other 2023年7月30日
    00
合作推广
合作推广
分享本页
返回顶部