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

Posted

技术标签:

【中文标题】我如何观察用户何时使用生物识别技术对应用程序进行身份验证?【英文标题】:How can I observe when user authenticates the app with biometrics? 【发布时间】:2018-10-05 13:38:41 【问题描述】:

我只是在代码中这样使用它:

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

【问题讨论】:

点击取消后用户可以进行身份​​验证的唯一方法是让您的应用再次调用context.evaluatePolicy 【参考方案1】:

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

【讨论】:

仅此而已?它的工作方式是否正确?【参考方案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;
                          
                      );

                  ];

【讨论】:

以上是关于我如何观察用户何时使用生物识别技术对应用程序进行身份验证?的主要内容,如果未能解决你的问题,请参考以下文章

识别用户何时触碰 UICollectionView 单元格

自动化测试:谈谈如何使用 opencv 进行图像识别

AppUI自动化中的图像识别的使用

如何知道 AVPlayer 何时使用仅音频比特率?

如何观察何时显示 UIAlertView?

如何确定控件何时对用户可见?