iOS 填坑之Touch ID与Face ID

一、Touch ID

2013年随iPhone 5s面世,Apple开启了,Touch ID解锁在移动终端上的使用,与之相随的就是各大厂家进行的模仿。

代码如下

            let context = LAContext.init()
            var error:NSError?
            var current_policy:LAPolicy?
            if #available(iOS 9.0, *) {
                current_policy = LAPolicy.deviceOwnerAuthentication
            } else {
                current_policy = LAPolicy.deviceOwnerAuthenticationWithBiometrics
            }
            if context.canEvaluatePolicy(current_policy!, error: &error) {
                context.evaluatePolicy(current_policy!, localizedReason: localizedReason, reply: { (success, error) in
                    if success {
                        print("通过了验证")
                    } else {
                        print("没有通过验证")
                        let flag = Int32.init(truncatingBitPattern: (error?._code)!)
                        switch flag {
                        case kLAErrorAuthenticationFailed:
                            print("连续三次出错")
                            self.errorBlock!()
                            break
                        case kLAErrorUserCancel:
                            print("点击了取消")
                            break
                        case kLAErrorPasscodeNotSet:
                            self.errorBlock!()
                            print("弹出密码输入页面")
                            break
                        case kLAErrorSystemCancel:
                            print("按下了电源键")
                            break
                        case kLAErrorTouchIDLockout:
                            print("Touch ID 锁定了")
                            break
                        default:
                            print("未知错误")
                        }
                    }
                })
            } else {
//                self.errorBlock!()
                print("弹出密码输入页面")
            }
        }

此处强调一下是
if #available(iOS 9.0, *) {
current_policy = LAPolicy.deviceOwnerAuthentication
} else {
current_policy = LAPolicy.deviceOwnerAuthenticationWithBiometrics
}
在iOS 9之后,LAPolicy使用deviceOwnerAuthentication可以当TouchID被系统锁定之后进行弹出系统解锁界面。

二、Face ID

Face ID是2017年秋季,与苹果十周年纪念版手机 iPhone X同出现的交互解锁功能呢,面容识别,为3D式识别用户Face数据。但在双胞胎识别上有Bug,此处就不加吐槽了。在iOS 11中新增了以下方法

func checkSupportMethod() -> Void {
        if #available(iOS 11.0, *) {
            if context.biometryType == LABiometryType.typeTouchID {
                print("设备支持Touch ID")
            } else if context.biometryType == LABiometryType.typeFaceID {
                print("设备支持Face ID")
            }
        } else {
        }
    }

三、总结

对于开发来说,代码完全不用进行更改,只是在UX上,交互那边,之前是Touch ID解锁而现在则更改为Face ID进行解锁。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 就在昨天,老妈和我微信视频,说:听说你买了一辆车。可不是吗?我终于买了一辆自行车。哈哈哈哈,两人不约大笑。 我买了...
    木木木侠阅读 4,525评论 0 4
  • 金灿灿的玉米囤满农家的庭院 红通通的小枣晾晒在屋前院后 黑黝黝的豆儿装好袋子聚在屋檐下 丰收!今年的秋,农家院落显...
    丰盈仓廪阅读 4,300评论 0 0
  • 寒风凛冽,寒气袭人,枯草萧疏,绿色尽失,今年的冬天如此苍白凄凉且冷漠. M点燃一支烟,吞云吐雾起来,一圈圈的烟雾,...
    幽谷泉涌阅读 4,338评论 0 1
  • 01 大熊和小琪是大学同学,也是我认识的人里,唯一一对毕业季在一起,结果谈了三年异地恋的恋人。 上周末,大熊还是失...
    子小洛阅读 9,259评论 47 61