美文网首页IOS
【LocalAuthentication】iOS8 指纹识别

【LocalAuthentication】iOS8 指纹识别

作者: 居然是村长 | 来源:发表于2016-06-20 22:53 被阅读636次

    初始化 iOS 8

     // 初始化 指纹识别 实例
        LAContext *context = [LAContext new];
    
     // 指纹错误 额外的提示按钮,对应下面的 kLAErrorUserFallback;为空时不显示
        context.localizedFallbackTitle = @"";
    
     // 检测是否有指纹识别
     [context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]
     typedef NS_ENUM(NSInteger, LAPolicy) {
         LAPolicyDeviceOwnerAuthenticationWithBiometrics NS_ENUM_AVAILABLE(NA, 8_0) = kLAPolicyDeviceOwnerAuthenticationWithBiometrics,
         LAPolicyDeviceOwnerAuthentication NS_ENUM_AVAILABLE(10_11, 9_0) = kLAPolicyDeviceOwnerAuthentication
     };
    
     // 指纹识别 识别回调
        [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
                localizedReason:NSLocalizedString(@"使用指纹识别,进入下一步", nil)
                          reply:^(BOOL success, NSError *error) {
                              if (success) {
                                  // 跳转
                              } else {
                                  // 错误 error.code = ?
                              }
                          }];
    
     // iOS 8
     LAErrorAuthenticationFailed 身份验证失败 - 大于系统允许次数失败时
     LAErrorUserCancel 用户取消
     LAErrorUserFallback 用户失败后新增的按钮回调
     LAErrorSystemCancel 系统取消,切换到系统外
     LAErrorPasscodeNotSet 指纹ID未设置
     LAErrorTouchIDNotAvailable 指纹ID不可用
     LAErrorTouchIDNotEnrolled 指纹ID未登记
    
     // iOS 9 
     LAErrorTouchIDLockout 指纹ID已锁
     LAErrorAppCancel app取消
     LAErrorInvalidContext 超时?
    

    iOS9

    涉及到 SecAccessControlRef 的安全库内容,暂无研究唉。

    extern const NSTimeInterval LATouchIDAuthenticationMaximumAllowableReuseDuration NS_AVAILABLE_IOS(9_0);
    
    - (void)invalidate NS_AVAILABLE(10_11, 9_0);
    
    typedef NS_ENUM(NSInteger, LAAccessControlOperation) {
        LAAccessControlOperationCreateItem,
        LAAccessControlOperationUseItem,
        LAAccessControlOperationCreateKey,
        LAAccessControlOperationUseKeySign
    } NS_ENUM_AVAILABLE(10_11, 9_0);
    
    - (void)evaluateAccessControl:(SecAccessControlRef)accessControl
                        operation:(LAAccessControlOperation)operation
                  localizedReason:(NSString *)localizedReason
                            reply:(void(^)(BOOL success, NSError * __nullable error))reply
                            NS_AVAILABLE(10_11, 9_0);
    
    @property (nonatomic, nullable, readonly) NSData *evaluatedPolicyDomainState NS_AVAILABLE(10_11, 9_0);
    
    @property (nonatomic) NSTimeInterval touchIDAuthenticationAllowableReuseDuration NS_AVAILABLE_IOS(9_0);
    
    

    1

    相关文章

      网友评论

        本文标题:【LocalAuthentication】iOS8 指纹识别

        本文链接:https://www.haomeiwen.com/subject/pkmpdttx.html