ios ios8 touch-id

ios - TouchID llama a applicationWillResignActive y applicationDidBecomeActive



ios8 touch-id (2)

¡Puede crear un bool estático en su script de inicio de sesión que puede verificar desde su AppDelegate!

static var isShowingTouchID = false

Luego, antes de su llamada context.evaluatePolicy , puede establecerlo en verdadero y, en la función de devolución de llamada, establecerlo en falso. Creo que usas el argumento de reply para establecer una devolución de llamada a esto.

Luego, en su AppDelegate , verifique el estado de este bool.

Originalmente estaba usando una variable pública en AppDelegate y configurando eso, pero me parece que no quería hacerlo. Francamente, tampoco me gusta esta solución, pero fue la única que pude encontrar.

Incluso intenté anular viewDidDisappear en mi secuencia de comandos de inicio de sesión, pero rápidamente descubrí que no se estaba llamando incluso cuando pulsé "Cancelar" en el indicador de identificación táctil.

Si alguien tiene una solución mejor, me encantaría saberlo.

Me pregunto si Apple pretende que estos métodos de ciclo de vida se utilicen al usar la funcionalidad TouchID.

¿Hay alguna posibilidad de verificar si el proceso de touchID está llamando a estos métodos (quiero evitar cosas como un BOOL en el delegado de la aplicación que se establece si la entrada de touchID se muestra actualmente o no ...)

br


Supongo que el problema que tiene es que tiene un código en applicationWillResignActive y applicationDidBecomeActive que afecta al controlador de vista que solicita la validación de ID de Touch y que desencadena un bucle complicado.

Lo que debe hacer es mover esas llamadas a applicationDidEnterBackground y applicationWillEnterForeground , porque no se invocan cuando se llama al mecanismo de ID de toque.

Para explicar la secuencia, cuando su aplicación se inicia, se ejecuta la siguiente secuencia:

  1. applicationDidBecomeActive
  2. ... otras cosas que hace tu aplicación
  3. Su aplicación invoca Touch ID, que dispara:
  4. applicationWillResignActive

... Su aplicación está deshabilitada hasta que el usuario verifique la huella digital (falla o tiene éxito) ...

  1. applicationDidBecomeActive

Si tiene un código en applicationDidBecomeActive -o- applicationWillResignActive que afecta a Touch ID, creará un bucle sin fin o, peor aún, creará un código que está lleno de banderas y casos especiales.

En su lugar, debe invocar Touch ID en dos casos:

  • Cuando se inicia tu aplicación (generalmente en didFinishLaunchingWithOptions )

  • Cuando se llama el applicationWillEnterForeground su aplicación.