TouchID calls applicationWillResignActive and applicationDidBecomeActive

前端 未结 2 1775
甜味超标
甜味超标 2021-02-03 23:55

I am wondering if this is intended by Apple that these lifecycle methods are called upon using TouchID functionality.

Is there any possibility to check if the touchID pr

2条回答
  •  心在旅途
    2021-02-04 00:38

    Im guessing the problem you're having is that you have code in applicationWillResignActive and applicationDidBecomeActive that affects the view controller that requests Touch ID-validation and that it sets off a tricky loop.

    What you need to do is move those calls to applicationDidEnterBackground and applicationWillEnterForeground, because they're not invoked when the Touch ID-mechanism is called.

    To explain the sequence, when your app starts the following sequence executes:

    1. applicationDidBecomeActive
    2. ..other stuff your app does
    3. Your app invokes Touch ID, which fires:
    4. applicationWillResignActive

    ... Your app is disabled until the user verifies fingerprint (fails or succeeds) ...

    1. applicationDidBecomeActive

    If you have code in applicationDidBecomeActive -or- applicationWillResignActive that affects Touch ID, you will create an endless loop or worse, you will create code that is riddled with flags and special cases.

    Instead you should invoke Touch ID in two cases:

    • When your app starts (usually in didFinishLaunchingWithOptions)

    • When your app's applicationWillEnterForeground is called.

提交回复
热议问题