TouchIDはapplicationWillResignActiveとapplicationDidBecomeActiveを呼び出します。質問する

TouchIDはapplicationWillResignActiveとapplicationDidBecomeActiveを呼び出します。質問する

TouchID 機能を使用してこれらのライフサイクル メソッドが呼び出されるのは Apple の意図によるものなのだろうかと思います。

touchID プロセスがこれらのメソッドを呼び出しているかどうかを確認する方法はありますか (touchID 入力が現在表示されているかどうかに設定されるアプリ デリゲート内の BOOL のようなものは避けたいです)。

br

ベストアンサー1

applicationWillResignActiveおそらく、コードが含まれており、applicationDidBecomeActiveそれが Touch ID 検証を要求するビュー コントローラーに影響し、厄介なループを引き起こしているのが問題だと思います。

必要なのは、これらの呼び出しをapplicationDidEnterBackgroundおよびに移動することですapplicationWillEnterForeground。これは、Touch ID メカニズムが呼び出されたときにこれらの呼び出しが呼び出されないためです。

シーケンスを説明すると、アプリが起動すると次のシーケンスが実行されます。

  1. applicationDidBecomeActive
  2. ..アプリが行うその他のこと
  3. アプリが Touch ID を呼び出すと、次の処理が実行されます。
  4. applicationWillResignActive

... ユーザーが指紋を検証するまで (失敗または成功)、アプリは無効になります...

  1. applicationDidBecomeActive

applicationDidBecomeActiveまたはにTouch ID に影響するコードがある場合applicationWillResignActive、無限ループが発生したり、さらに悪いことに、フラグや特殊なケースが満載のコードが作成されたりすることになります。

代わりに、次の 2 つの場合に Touch ID を呼び出す必要があります。

  • アプリが起動すると(通常はdidFinishLaunchingWithOptions

  • アプリがapplicationWillEnterForeground呼び出されたとき。

おすすめ記事