现在市面上基本上支持的iPhone的APP大多做了iTouch的生物指纹调用,要求多是解锁或者认证功能,其实就要做人机关联。
1,基本功能
基本功能有着现成的API,直接调用就成。
无非就是两个枚举的区别
LAPolicyDeviceOwnerAuthentication // ios>9.0
LAPolicyDeviceOwnerAuthenticationWithBiometrics
LAPolicyDeviceOwnerAuthentication的强大在于可以指纹出错的情况下,调用iPhone手机锁屏密码验证,成功则表示通过。
2,其他细节
每个App都不相同,就是简单调用iTouch的需求也各不相同。验证成功的逻辑不说基本上千篇一律,这里主要说一下验证失败几个关键点。
LAErrorAuthenticationFailed
LAErrorUserCancel
LAErrorUserFallback
LAErrorSystemCancel
LAErrorAppCancel
上面几种比较常见的失败block回调,其中LAErrorAppCancel是比较少见的,APP在验证iTouch或者Face ID时,被电话等iPhone级别更高的功能中断
LAErrorPasscodeNotSet //没有设置密码,没法用
LAErrorTouchIDNotAvailable //iTouch没法用
LAErrorTouchIDNotEnrolled //iTouch没法用
LAErrorTouchIDLockout //iTouch没法用
上面四种状态表示现在iTouch是无法使用的。
3,类似支付宝iTouch调用
支付宝的基本功能调用实现是由LAPolicyDeviceOwnerAuthentication枚举实现的。有一个不怎么常用的功能提现是,用户连续错误5次验证iTouch失败后,iTouch是被锁死的,而支付宝可以调用代码在App内部输入密码解锁iTouch来继续使用iTouch。
调用的代码也很简单,在LAErrorTouchIDLockout状态下

至于else的处理,可以弹出提示框,让用户知晓iTouch被锁死,需要重启。
要是要跳转设置页面如下
NSURL *url1 = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
//url1,直接跳转该App的设置页面
NSURL *url2 = [NSURL URLWithString:@"App-Prefs:root=General&path=AUTOLOCK"];
//url2,直接跳转手机设置页面
if([[UIApplication sharedApplication] canOpenURL:url]) {
if(@available(iOS10.0, *)) {
[[UIApplication sharedApplication] openURL:url options:nil completionHandler:nil];
}else{
[[UIApplication sharedApplication] openURL:url];
}
}
OK,完事了,iTouch或者连带Face ID调用这一块,基本上就这些了。
积累分享,希望大家喜欢!!!
网友评论