我如何观察用户何时使用生物识别技术对应用程序进行身份验证?

How can I observe when user authenticates the app with biometrics?

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

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"。现在,我需要在第一次尝试被取消后的任何时间对用户进行身份验证后获得回调。我怎样才能检测到这个?

用代码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;
                          }
                      });

                  }];

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