En esta sección, encontrará toda la información necesaria para el uso e integración del SDK de la plataforma Unico IDCloud en sus aplicaciones iOS para la captura de selfies.
Esta guía ha sido elaborada para ayudarlo a implementar el SDK iOS de forma rápida y fácil. A continuación, verá el paso a paso de todo el proceso de integración. Después de esto, si desea personalizar la experiencia, no deje de consultar la sección Personalización iOS.
Para comenzar con el SDK iOS de Unico Check, importe el SDK e implemente la interfaz AcessoBioManagerDelegate
dentro del ViewController en el que desea utilizarlo.
La implementación de esta clase es bastante simple y puede realizarse con pocas líneas de código. Solo necesita instanciar el builder proporcionando el contexto y el entorno en cuestión, y sobrescribir los métodos de callback con las lógicas de negocio de su aplicación:
Configure el entorno que se utilizará durante la ejecución del SDK. Utilice el enumerado Environment
que contiene los siguientes valores:
PROD
: para entorno de Producción;
UAT
: para entorno de Homologación.
Vea cómo implementarlo en el siguiente ejemplo:
Tenga en cuenta que, conforme al ejemplo anterior, el trabajo de implementación de la interfaz AcessoBioManagerDelegate
consiste en gran parte en configurar los métodos de callback. Cada método es llamado en una situación específica del retorno del SDK.
Basta con sobrescribir los métodos ejemplificados en el paso anterior con la lógica de negocio de su aplicación:
onErrorAcessoBioManager(_ error: ErrorBio!)
Este método es invocado cuando ocurre cualquier error de implementación al utilizar alguno de los métodos, como por ejemplo, al proporcionar un tipo de documento incorrecto para la funcionalidad de captura de documentos.
Al ser invocado, el método recibirá un parámetro del tipo ErrorBio
que contiene detalles del error. Obtenga más información sobre el tipo ErrorBio
en el artículo de tratamiento de errores de este SDK.
onUserClosedCameraManually()
Este método se invoca siempre que el usuario cierre la cámara manualmente, como por ejemplo, al hacer clic en el botón "Volver".
onSystemClosedCameraTimeoutSession()
Este método se invoca tan pronto como se alcance el tiempo máximo de sesión (sin capturar ninguna imagen).
Puede ser configurado en el builder mediante el método setTimeoutSession. Este método debe recibir el tiempo máximo de sesión en segundos. Es posible cambiar el tiempo máximo de sesión de su usuario al utilizar la funcionalidad de detección facial (Cámara de selfie con captura inteligente). Si el usuario supera el tiempo determinado para capturar la foto, puede presentar un mensaje o instrucción personalizable al usuario. El valor predeterminado es de 40 segundos y su valor mínimo también es de 40 segundos.
onSystemChangedTypeCameraTimeoutFaceInference()
Este método se invoca tan pronto como se alcance el tiempo máximo para la detección facial de un usuario (sin que se haya detectado nada). En este caso, el modo de cámara se cambia automáticamente al modo de captura manual (sin la silueta de captura inteligente).
El tiempo máximo de captura al utilizar la detección facial (Cámara de selfie con captura inteligente) es de 13 segundos. Si el usuario tiene dificultades para capturar la foto a través de la detección facial y supera el tiempo determinado en su proceso, la captura se cambia automáticamente al modo manual con el fin de facilitar la acción para el usuario (TimeoutToFaceInference).
Todos los métodos anteriores deben ser creados de la manera indicada en su proyecto (aunque sin ninguna lógica). De lo contrario, el proyecto no compilará con éxito.
El SDK tiene configurado y habilitado por defecto el encuadre inteligente y la captura automática. Debido a esto, se debe configurar el modo de cámara en su builder de la siguiente manera:
Los valores false/true de los métodos anteriores no alteran la experiencia de captura, solo sirven para la lógica interna del funcionamiento del SDK.
El método de apertura de la cámara necesita saber qué hacer al conseguir capturar una imagen con éxito o al tener algún error en el proceso. Se informa "qué hacer" al método de apertura de la cámara a través de la configuración de delegados que son llamados en situaciones de éxito o error.
A través de la configuración de los delegados, puedes especificar qué sucede en tu aplicación en situaciones de error (método onErrorSelfie
) o éxito (método onSuccessSelfie
) en la captura de imágenes.
Para la configuración de los delegados, debes implementar las interfaces SelfieCameraDelegate
y AcessoBioSelfieDelegate
:
onSuccessSelfie
Al realizar una captura de imagen con éxito, este método es invocado y retorna un objeto del tipo SelfieResult
, que se utiliza posteriormente en la llamada a las APIs REST.
El objeto ResultCamera
retorna 2 atributos: base64
y encrypted
:
El atributo base64
puede ser utilizado si deseas mostrar una vista previa de la imagen en tu app;
El atributo encrypted
debe ser enviado en la llamada a las APIs REST.
El atributo encrypted
está destinado estrictamente al envío de la imagen a través de las APIs del by Client. No debe abrirse ni serializarse, ya que sus características pueden ser modificadas sin previo aviso. Su uso debe ser exclusivo en las interacciones con las APIs para garantizar la integridad y seguridad de los datos. Unico no se hace responsable de cualquier daño derivado de esta práctica, ya que las modificaciones pueden ocurrir de manera impredecible.
Los archivos base64/encrypted
pueden sufrir variaciones de tamaño según diversas variables, entre ellas, la calidad de los dispositivos y las fotos generadas por los mismos, así como las reglas de negocio de Unico. Para evitar problemas en tu aplicación, no limites en tu lógica de programación ni en tu infraestructura el tamaño de la cadena generada por el SDK para los archivos.
Si deseas convertir el base64 a bitmap, el método estándar no funciona para iOS. Es necesario realizar el split a partir de la coma (,
) para que funcione. Si deseas saber más, lee el siguiente artículo: How to convert a Base64 string into a Bitmap image to show it in an ImageView?.
onErrorSelfie
Cuando ocurre un error en la captura de la imagen, este método es invocado y retorna un objeto del tipo ErrorBio
:
Infórmate más sobre los tipos de ErrorBio
en la sección de tratamiento de errores del SDK.
Si no se configura, el SDK utiliza el entorno configurado a través del archivo de configuración (getHostKey). Si no se está utilizando getHostKey, se devuelve un error.
Es posible configurar el entorno que se utilizará en la ejecución del SDK. Utiliza el enumerado EnvironmentEnum
, que contiene los siguientes valores:
EnvironmentEnum.PROD
: para el entorno de Producción
EnvironmentEnum.UAT
: para el entorno de Homologación
Mira cómo implementarlo en el siguiente ejemplo:
Para continuar con la apertura de la cámara, primero debes prepararla utilizando el método prepareSelfieCamera
. Este método recibe como parámetro la implementación de la clase SelfieCameraDelegate
y el JSON con las credenciales, generado en la etapa anterior.
Cuando la cámara esté preparada, el evento onCameraReady
se dispara y recibe como parámetro un objeto del tipo AcessoBioCameraOpenerDelegate
.
Debes sobrescribir este método, realizando la apertura de la cámara con el objeto recibido a través del método open()
:
El tipo ErrorPrepare
es una extensión de ErrorBio
, por lo que contiene todas sus propiedades. Infórmate más sobre el tipo ErrorBio
en la sección de tratamiento de errores del SDK.
Si ocurre algún error al preparar la cámara, el evento onCameraFaile
d se dispara. Debes implementar este método aplicando las reglas de negocio de tu aplicación.
La captura de las imágenes es solo la primera parte del proceso. Después de capturar la imagen, es necesario enviar el encrypted
generado por el SDK a las APIs REST del by Client. Infórmate más en la sección Creación de proceso.
Por motivos de seguridad, el intervalo entre la generación del encrypted
y el envío a través de uno de los flujos disponibles debe ser como máximo de 10 minutos. Los envíos realizados después de este período serán rechazados automáticamente por la API.
¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.