TouchID调用applicationWillResignActive和applicationDidBecomeActive

Chr*_* K. 24 ios touch-id ios8

我想知道Apple是否打算使用TouchID功能调用这些生命周期方法.

是否有可能检查touchID进程是否正在调用这些方法(我想避免在app delegate中设置BOOL,如果当前显示的是touchID输入,则设置该BOOL ...)

BR

Emm*_* Ay 48

我猜你遇到的问题是你有代码applicationWillResignActiveapplicationDidBecomeActive影响请求Touch ID验证的视图控制器,并且它引发了一个棘手的循环.

你需要做的是移动这些调用applicationDidEnterBackgroundapplicationWillEnterForeground,因为当触摸ID-机制被称为他们不被调用.

要解释序列,当您的应用程序启动时,执行以下序列:

  1. applicationDidBecomeActive
  2. ..你的应用程序的其他东西
  3. 您的应用会调用Touch ID,它会触发:
  4. applicationWillResignActive

...您的应用程序被禁用,直到用户验证指纹(失败或成功)...

  1. applicationDidBecomeActive

如果您的代码在applicationDidBecomeActive- 或 - applicationWillResignActive影响Touch ID,您将创建一个无限循环或更糟糕的是,您将创建充满标志和特殊情况的代码.

相反,您应该在两种情况下调用Touch ID:

  • 当您的应用启动时(通常在didFinishLaunchingWithOptions)

  • 当您的应用程序applicationWillEnterForeground被调用时.