Selphi Component
1. Introducción
El Componente tratado en el documento actual recibe el nombre de Selphi Component. Éste se encarga de realizar la captura de un selfie del usuario y la posterior extracción de las características faciales más importantes. Sus principales funcionalidades son las siguientes:
- Gestión interna de cámaras.
- Gestión de permisos.
- Asistente en los procesos de captura de la cara del usuario.
Generación de las plantillas con las características faciales y de la imagen de la cara del usuario para el proceso de detección de vivacidad (Liveness)
1.2 Versión del plugin
La versión del plugin actual se puede consultar de la siguiente forma:
- Buscamos el archivo package.json en la raíz del plugin.
- En el KEY/TAG version se indica la versión.
2. Integración del componente
ℹ️ Antes de integrar este componente se recomienda leer la documentación relativa a Core Component 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.
⚠️ Para esta sección, se considerarán los siguiente valores:
- <%APPLICATION_PATH%> - Path a la raíz de la aplicación (ejemplo: /folder/example)
- <%PLUGIN_CORE_PATH%> - Path a la raíz del plugin core, que es obligatorio (ejemplo: /folder/sdk-core)
- <%PLUGIN_SELPHI_FACE_PATH%> - Path a la raíz del plugin actual (ejemplo: /folder/sdk-selphi)
2.1. Instalación del plugin: Common
El plugin permite la ejecución en platafoma Android y iOS. En esta sección se explicaLos pasos comunes a todas instalar el plugin se deben seguir los siguientes pasos:
- Acceda al <%APPLICATION_PATH%> en un terminal y ejecute:
npm i @facephi/sdk-core-capacitor
npm i @facephi/sdk-selphi-capacitor
npm run build
npx cap sync
npx ionic capacitor build [android | ios]
Tras ejecutar los comandos anteriores, automáticamente se abrirá el IDE correspondiente de cada una de las plataformas (XCode para iOS, Android Studio para Android), y solo quedaría compilarlo (y depurarlo en caso de ser necesario) como si fuera un proyecto nativo estándar.
2.2 Instalación plugin: iOS
2.2.1 Configuración del proyecto
Para la versión de iOS, a la hora de añadir nuestro plugin a la aplicación final, previamente se deben tener en cuenta los siguientes puntos:
- Añadir los permisos de cámara: Para utilizar el componente, es necesario habilitar el permiso de la cámara en el archivo info.plist de la aplicación (incluido dentro del proyecto en la carpeta ios). Se deberá editar el archivo con un editor de texto y agregar el siguiente par clave/valor:
<key>NSCameraUsageDescription</key>
<string>$(PRODUCT_NAME) uses the camera</string>
2.2.2 Actualizar el Podfile
En el podfile del proyecto será necesario añadir la información del repositorio privado (ver apartado 2.1). Para ello, se deberá agregar las siguientes lineas al inicio del fichero:
platform :ios, '13.0' //MIN VERSION
plugin 'cocoapods-art', :sources => ['cocoa-pro-fphi']
source 'https://cdn.cocoapods.org/'
⚠️ Para saber más acerca de la configuración y uso de Cocoapods Artifactory, es necesario acceder al siguiente documento de Componente Core.
### 2.2.4 Posibles incidencias Si ocurren problemas de entorno o no se actualiza el plugin tras realizar nuevos cambios (por ejemplo, problemas ocurridos debido a que no se genera correctamente el bundle, o no se actualizan las librerías a las versiones adecuadas), se recomienda ejecutar la siguiente secuencia de instrucciones tras lanzar el plugin:
Abrir la carpeta ios de la aplicación en un terminal. Ejecutar el siguiente comando:
pod deintegrate
- Eliminar el Podfile.lock
- Ejecutar el siguiente comando (o abrir el proyecto con Xcode y ejecutarlo):
pod install --repo-update
2.3 Instalación plugin: Android
2.3.1 Establecer la versión de Android SDK
En el caso de Android, la versión mínima de SDK requerida por nuestras bibliotecas nativas es 23, por lo que si la aplicación tiene un SDK mínimo definido menor que éste, deberá modificarse para evitar un error de compilación. Para ello accede al fichero build.gradle de la aplicación (ubicado en la carpeta android) y modifica el siguiente parámetro:
buildscript {
ext {
minSdkVersion = 24
}
}
3. Configuración del componente
El componente actual contiene una serie de métodos e interfaces de Typescript incluidos dentro del archivo definitions.d.ts. En este fichero se puede encontrar la API necesaria para la comunicación entre la aplicación y la funcionalidad nativa del componente. A continuación, se explica para qué sirve cada uno de los enumerados y las demás propiedades que afectan al funcionamiento del componente.
A continuación se muestra la clase SelphiConfiguration, que permite configurar el componente de Selphi:
export interface SelphiConfiguration {
debug?: boolean;
fullscreen?: boolean;
cropPercent?: number;
stabilizationMode?: boolean;
templateRawOptimized?: boolean;
resourcesPath?: string;
enableGenerateTemplateRaw?: boolean;
livenessMode?: SdkLivenessMode;
showResultAfterCapture?: boolean;
cameraFlashEnabled?: boolean;
translationsContent?: string;
viewsContent?: string;
showTutorial?: boolean;
videoFilename?: string;
qrMode?: boolean;
showDiagnostic?: boolean;
logImages?: boolean;
compressFormat?: SdkCompressFormat,
jpgQuality?: number
}
A continuación, se comentarán todas las propiedades que se pueden definir en el objeto SelphiConfiguration:
ℹ️ Toda la configuración se podrá encontrar en el archivo definitions.ts del componente.
A la hora de realizar la llamada al componente existe una serie de parámetros que se deben incluir. A continuación se comentarán brevemente.
3.1. resourcesPath
type: string
Establece el nombre del archivo de recursos que utilizará el componente para su configuración gráfica. Éste archivo es personalizable y se encuentra en el complemento en la carpeta src/main/assets para Android y en ios/Frameworks y de la carpeta Resources para iOS. Su instalación es transparente para el usuario, simplemente se agregará a los proyectos de las respectivas plataformas durante la instalación del complemento. Más detalles sobre cómo funciona este paquete de recursos y cómo modificarlo se explican en apartado 6.
resourcesPath: "fphi-selphi-widget-resources-sdk.zip",
3.2. cropPercent
type: float
Especifica el porcentaje de ampliación del área del rostro detectado para componer la imagen que se devuelve.
cropPercent: 1.0