swift-集成touch id功能 指纹验证

82 篇文章 1 订阅

在这里写了一个指纹验证的类,公开了一个类方法来自定义输入提醒用户的内容,随时调用即可完成touch id验证功能

1 新建一个类文件:

fingerUnlock继承于NSObject就可以

2 在这个文件中导入需要的系统框架 

import LocalAuthentication

3 直接粘代码就OK,下面这个方法是自己随便写的一个类方法  主要是为了输入提醒文字并验证

class func userFigerprintAuthenticationTipStr(tipsStr: String) {

        let context = LAContext()

        var error: NSError?

        

        // 判断设备是否支持指纹解锁

        if context.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error: &error) {

            context.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: tipsStr, reply: { (success, error) in

                if success {

                    print("验证成功")

                } else {

                    switch Int32(error!.code) {

                        // 身份验证失败

                        case kLAErrorAuthenticationFailed:

                            print("LAErrorAuthenticationFailed")

                        // 用户取消

                        case kLAErrorUserCancel :

                            print("kLAErrorUserCancel")

                            break

                        //验证失败

                        case kLAErrorUserFallback:

                            print("LAErrorUserFallback")

                            break;

                        // 被系统取消,例如按下电源键

                        case kLAErrorSystemCancel:

                            print("kLAErrorSystemCancel")

                            break;

                        // 设备上并不具备密码设置信息,也就是说Touch ID功能处于被禁用状态

                        case kLAErrorPasscodeNotSet:

                            print("kLAErrorPasscodeNotSet")

                            break;

                        // 设备本身并不具备指纹传感装置

                        case kLAErrorTouchIDNotAvailable:

                            print("kLAErrorTouchIDNotAvailable")

                            break;

                        // 已经设定有密码机制,但设备配置当中还没有保存过任何指纹内容

                        case kLAErrorTouchIDNotEnrolled:

                            print("kLAErrorTouchIDNotEnrolled")

                            break;

                        // 输入次数过多验证被锁

                        case kLAErrorTouchIDLockout:

                            print("kLAErrorTouchIDLockout")

                            break;

                        // app取消验证

                        case kLAErrorAppCancel:

                            print("LAErrorAppCancel")

                            break;

                        // 无效的上下文

                        case kLAErrorInvalidContext:

                            print("LAErrorAppCancel")

                            break;

                        default:

                        break

                    }

                }

            })

        } else {

            print("您的设备不支持touch id")

        }

    }

4 在需要用到touch id功能的地方调用就可以 例如:

fingerUnlock.userFigerprintAuthenticationTipStr("请把输入指纹的手指放在Home键上")


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值