1

简单地在代码中我像这样使用它:

let context = LAContext()
if context.canEvaluatePolicy(.deviceOwnerAuthentication, error: nil)
    context.evaluatePolicy(.deviceOwnerAuthentication, localizedReason: "jjj") { success, error in
        print(error)
        print(success)
    }
}

然后用户可以看到:

在此处输入图像描述

一切都很好,直到用户点击Cancel。然后我显示标签:

"Please use biometrics to authenticate". 现在,在取消第一次尝试后,我需要随时在用户通过身份验证后获得回调。我怎样才能检测到这个?

4

2 回答 2

1

为此,您不需要“回调”。如果用户拒绝身份验证以响应对话框,则身份验证发生的唯一方法是在设置中,即在您的应用程序之外。因此,每次您的应用程序进入前台时,只需检查身份验证。

于 2018-10-05T14:16:02.157 回答
-2

尝试使用代码 Obj-C,我认为 Swift 是相同的逻辑

self.context = [[LAContext alloc] init];
[self.context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
        localizedReason:strMessage
                  reply:^(BOOL success, NSError *error) {

                      dispatch_async(dispatch_get_main_queue(), ^{

                          if (error) {
                              if (error.code == LAErrorUserFallback) {
                                  //Do some thing
                              }else if (error.code == LAErrorAuthenticationFailed) {
                                  //User authen failed
                              }else if (error.code == LAErrorUserCancel) {
                                  //User cancel
                              }else{
                                  //Something wrong...
                              }
                              return;
                          }

                          if (success) {
                             //Success
                          } else {
                            //Failed
                              return;
                          }
                      });

                  }];
于 2018-10-05T14:10:50.297 回答