iOS

App de demostración

Descargue la última versión de la app de demostración:

En el repositorio de GitLab se encuentra el código fuente de una app de ejemplo que utiliza el SDK de Oz Liveness:

Cómo agregar el SDK a la aplicación móvil del cliente

Cómo instalar el SDK

Para instalar OZLivenessSDK, utilice el administrador de dependencias CocoaPods. Para integrar OZLivenessSDK en un proyecto de Xcode, añada el siguiente código a Podfile:

pod 'OZLivenessSDK', :git => 'https://gitlab.com/oz-forensics/oz-liveness-ios', :tag => 'VERSION'

Puede encontrar la versión necesaria en el Registro de cambios.

Hay que agregar al proyecto los siguientes ajustes de parámetros:

OZSDK.authToken = "" // token de acceso válido para Oz API

Licencia

Para obtener una licencia para el SDK, escríbanos por correo electrónico. Para crear la licencia, es necesario el bundle id. Después de obtener un archivo de licencia, hay dos maneras de agregar la licencia a su proyecto.

  1. Cambie el nombre de este archivo a forensics.license y póngalo en el proyecto.

  2. Durante el tiempo de ejecución: al inicializar el SDK, utilice el siguiente método.

OZSDK(licenseSources: [LicenseSource], completion: @escaping ((LicenseData?, LicenseError?) -> Void))

LicenseSource es una ruta al archivo de licencia, y LicenseData es la información sobre su licencia. Tenga en cuenta: este método comprueba si tiene una licencia activa o no y, en caso afirmativo, la licencia no será sustituida por una nueva. Para forzar la sustitución de la licencia, utilice el método setLicense.

Después de configurar la licencia, conéctese a los servidores de Oz:

OZSDK.configure(with: "https://api.sandbox.ozforensics.com")

Autorización

Para autorizar la Oz API, utilice el métodoOZSDK.login:

OZSDK.login(login, password: password) { (token, error) in
        if let token = token {
        }
      }

Captura de videos

Puede crear un controlador que capture videos de la siguiente manera:

let actions: [OZVerificationMovement] = [.scanning, .smile, .far]
let ozLivenessVC: UIViewController = OZSDK.createVerificationVCWithDelegate(self, actions: actions)
self.present(ozLivenessVC, animated: true)

action: lista de las acciones del usuario mientras se captura el video. Posibles acciones:

  • .smile

  • .eyes

  • .up

  • .down

  • .left

  • .right

  • .scanning

  • .selfie

  • .oneshot

El método onOZVerificationResult(results:) para OZVerificationDelegate recupera los resultados de la captura que contienen el estado y la URL del video. Utilice videoURL para recuperar el video, bestShotURL para recuperar la mejor toma, y preferredMediaURL para recuperar el medio más apropiado para la acción (es decir, la mejor toma para la acción de una sola toma y el video para otras acciones).

Carga de archivos multimedia para su análisis

Hay dos formas de enviar archivos multimedia para su análisis:

  • análisis en el servidor: el sistema envía archivos multimedia a un servidor remoto y luego espera su respuesta.

  • análisis en el dispositivo: los archivos multimedia se analizan en el dispositivo, sin enviarlos a ninguna parte.

Análisis en el servidor

Los datos destinados a la carga y el análisis se almacenan en los resultados de los objetos (véase más arriba), obtenidos después de capturar y grabar el video. Cárguelos en el servidor e inicie los análisis necesarios con la ayuda de Oz API.

Un escenario simple de interacción con Oz API puede ser implementado con el método OZSDK.analyse como se describe a continuación.

OZSDK.analyse(
  results: results,
    analyseStates: [.quality],
    fileUploadProgress: { (progress) in

    }
) { (resolution, error) in

}

El bloque completion | resolution contendrá el resultado del análisis asignado, incluyendo status (estado del análisis), type (tipo de análisis) y folderID (id. de la carpeta de Oz API).

Para realizar un análisis exhaustivo con video y fotografías de documentos, se utiliza el método OZSDK.documentAnalyse:

OZSDK.documentAnalyse(
  documentPhoto: DocumentPhoto(front: frontDocumentURL, back: backDocumentURL),
  results: results,
  scenarioState: { (state) in
  
  }, fileUploadProgress: { (progress) in

  }
) { (folderResolutionStatus, resolutions, error)

}

El bloque completion | resolution contendrá el resultado del análisis asignado (similar a OZSDK.analyse), donde folderResolutionStatus es el estado general de los análisis para la carpeta.

Puede utilizar el método OZSDK.uploadAndAnalyse tanto para los documentos como para la comprobación facial:

OZSDK.uploadAndAnalyse(results: results,
                    documentPhoto: DocumentPhoto(front: frontDocumentURL, back: backDocumentURL),
                    analysisTypes: [.quality],
                    metadata: nil,
                    scenarioState: { state in },
                    fileUploadProgress: { progress in }) { status, resolution, error in }) 

El bloque resolution contendrá el resultado del análisis asignado (similar a OZSDK.analyse y OZSDK.documentAnalyse).

Análisis en el dispositivo

Utilice los siguientes métodos para ejecutar el análisis en el dispositivo:

Biometry:

OZSDK.runOnDeviceBiometryAnalysis(firstResult: firstResult, secondResult: secondResult, completion: { status, error in
//mostrar resultado 
})

Liveness:

OZSDK.runOnDeviceLivenessAnalysis(results: results, completion: {status, error in 
//mostrar resultado 
})

Personalización

Puede usar OZSDK.customization para cambiar el estilo visual de la app.

Example:

OZSDK.customization.buttonColor.darkColor = .black
OZSDK.customization.buttonColor.lightColor = .whiteOZSDK.customization.textColor = .whiteOZSDK.customization.ovalCustomization.strokeWidth = 2
OZSDK.customization.ovalCustomization.failStrokeColor = .red
OZSDK.customization.ovalCustomization.successStrokeColor = .green

Última actualización