出于我的应用安全目的,我已经集成了LocalAuthentication,该产品一直支持基于'触摸ID'的支持。但是现在,苹果最近还添加了基于'Face Id'的身份验证。
我如何检查设备支持哪种身份验证。触摸ID或人脸ID?
使用Xcode 9,请查看LocalAuthentication -> LAContext -> LABiometryType。
LABiometryType是一个枚举,其值与附件中的图像相同
您可以在Touch ID和FaceID之间检查设备支持的身份验证类型,或者不检查。
编辑:
Apple已为此枚举LABiometryType
更新值。 现在不建议弃用。来自@Markicevic扩展名,但忽略用户未注册的情况,等等。
我一直在努力使它正常工作,发现我需要使用LAContext的单个实例,并且需要在获取biometryType之前调用LAContextInstance
由于我是扩展的忠实粉丝。我对这个答案的措辞有些不同。本质是一样的。这是一个插件扩展。
Face ID
这里是通过属性的另一种方式(例如,在您的访问实例上)。
目标C :)
这是我的“帮助程序类”,它还包括密码
我为本地身份验证创建了一个单例类,因为它一次使用整个应用程序的static
属性来初始化实例。
此代码在Xcode 9.2
-9.4
上构建时没有警告(请参阅9.1
的注释):