Saltar al contenido principal
Version: 2.2.X

Tracking Component

0. Requisitos base de SDK Mobile​

SDK Mobile es un conjunto de librerías (Componentes) que ofrece una serie de funcionalidades y servicios, permitiendo a su vez su integración en una aplicación Mobile de forma sencilla y totalmente escalable. Dependiendo del caso de uso que se requiera, se deberá realizar la instalación de unos determinados componentes. Su alto nivel de modularidad permite que, en un futuro, se puedan añadir otros componentes nuevos sin afectar en absoluto a los ya integrados en el proyecto.

Para más información sobre la configuración base, vaya a la sección de Primeros Pasos.


1. Introducción​

El Componente tratado en el documento actual recibe el nombre de Tracking Component. Éste se encarga de realizar el trackeo y monitorización de la información obtenida durante la ejecución del resto de componentes de la SDKMobile, enviándola a los servicios de la Plataforma. Se podrá realizar el seguimiento en tiempo real de estos datos en la Plataforma, mientras se está ejecutando el proceso en el dispositivo del cliente.

Al contrario que ocurre con el resto, este componente no funciona individualmente, trabaja de forma transversal al resto de componentes instalados en la SDKMobile. Para trackear la información se mantiene en segundo plano mientras se ejecuta el proceso de la SDKMobile.


2. Integración del componente​

Antes de integrar este componente se recomienda leer la documentación relativa a:

Primeros Pasos y seguir las instrucciones indicadas en dicho documento.

En esta sección se explicará paso a paso cómo integrar el componente actual en un proyecto ya existente.

2.1. Dependencias requeridas para la integración​

Para evitar conflictos y problemas de compatibilidad, en caso de querer instalar el componente en un proyecto que contenga una versión antigua de las librerías de Facephi (Widgets), éstos deberán eliminarse por completo antes de la instalación de los componentes de la SDKMobile.

  • Actualmente las librerías de FacePhi se distribuyen de forma remota a través de diferentes gestores de dependencias. Las dependencias obligatorias que deberán haberse instalado previamente:

    implementation "com.facephi.androidsdk:tracking_component:$sdk_tracking_component_version"

3. Iniciar nueva operación​

Cuando se desea realizar una determinada operación, para generar la información asociada correctamente en la plataforma deberá ejecutarse previamente el comando newOperation.

Este comando debe haberse ejecutado anteriormente al lanzamiento del componente.

Para saber más acerca de cómo iniciar una nueva operación, se recomienda consultar la documentación de Primeros Pasos, en el que se detalla y explica en qué consiste este proceso.


4. Controladores disponibles​

ControladorDescripción
TrackingControllerControlador principal de tracking
TrackingErrorControllerControlador para gestionar los posibles errores que ocurran
ExtraDataControllerControlador para obtener el ExtraData que permite la comunicación desde cliente con el servidor con SelphIDSdk instalado.

5. Configuración del componente​

Para configurar el componente actual, se realiza en el initSdk, revisar el apartado de inicialización en Primeros Pasos.

5.1. Configuración de TrackingController​

Se debe incluir este parámetro durante la inicialización de la SDK.

SDKController.initSdk(
...
trackingController = TrackingController(),
)

5.2. Configuración de control de errores​

Se podrá configurar el callback para controlar los errores de tracking:

SDKController.launch(
TrackingErrorController {
Napier.d("Tracking Error: ${it.name} - ${it.error} - ${it.stepType}")
}
)

En el apartado 7 se muestran los posibles valores de error que existen.

5.3. Obtención del ExtraData para comunicación con la Plataforma​

Este controlador (ExtraDataController) permite obtener un array con los identificadores de la operación actual. Este dato se enviará con al backend donde se realizarán las verificaciones pertinentes.

La llamada para obtener al extraData, necesita la información de la operación en curso, lo cual obliga a que se haya realizado con anterioridad un newOperation.

val result = SDKController.launch(
ExtraDataController()
)
when (result) {
is SdkResult.Success -> logs.add("ExtraData: OK")
is SdkResult.Error -> logs.add(
"ExtraData: KO - ${result.error.name}"
)
}

6. Uso del componente​

Como se ha comentado previamente, una vez inicializado y configurado el componente de tracking no será necesario lanzarlo, ya que se mantendrá funcionando en segundo plano mientras se ejecutan el resto de componentes.


7. Recepción del resultado​

7.1. Recepción de errores​

En la parte del error, dispondremos de la clase TrackingError. La clase devolverá 3 campos:

  • name: String con el nombre del error
  • error: Información addicional en el caso de que sea necesaria
  • stepType: Componente del SDK en el que ha fallado el envío del evento

Listado de errores:

  • APPLICATION_CONTEXT_ERROR: Error en la inicialización del contexto
  • ASSET_LINK: Error al enviar el link del recurso
  • ASSET_UPLOAD: error al enviar un recurso a la plataforma
  • CUSTOMER_ID: Error al enviar el ID de cliente
  • INIT_IDS_ERROR: Error en los datos de entrada
  • INIT_OPERATION: Error en el envío de eventos de nueva operación
  • LICENSE_ERROR: Error en la licencia
  • NETWORK_CONNECTION: Error en la conexión a internet
  • NO_OPERATION_CREATED_ERROR: No hay ninguna operación en curso
  • OCR_DATA: Error al enviar los datos del OCR
  • OPERATION_ID: El ID de operación es nulo
  • OPERATION_RESULT: Error al enviar el evento se
  • SEND_BYTEARRAY: Error al enviar el recurso
  • SESSION_ID: El ID de sesión es nulo
  • STEP_CHANGE: Error al enviar el evento de cambio de componente
  • TOKEN_ERROR: Error al obtener el token de conexión