Saltar al contenido principal

Captura de documentos

Captura de documentos de identidad. El SDK presenta un marco para ayudar al usuario a posicionar el documento; una vez posicionado, el usuario hace clic en el botón para capturar la foto.

Sin validación de contenido

El SDK no realiza ningún tipo de validación sobre lo que se está capturando.

Marcos de documento disponibles
MarcoDescripción
DocumentEnums.CPFCaptura el CPF
DocumentEnums.CNHCaptura la CNH abierta
DocumentEnums.cnhFrenteCaptura el frente de la CNH
DocumentEnums.cnhVersoCaptura el dorso de la CNH
DocumentEnums.RGCaptura el RG abierto
DocumentEnums.rgFrenteCaptura el frente del RG
DocumentEnums.rgVersoCaptura el dorso del RG
DocumentEnums.noneMarco rectangular genérico para cualquier otro documento
Marco genérico

Si necesita capturar un documento para el que no existe un marco específico (por ejemplo, RNE), use DocumentEnums.none — un marco genérico y rectangular que puede utilizarse para guiar cualquier captura.

Para la lista completa de tipos de documentos soportados, consulte Referencia de API > Enumeraciones.

Iniciar una captura de documento
Paso 1 — Implementar AcessoBioManagerDelegate

AcessoBioManagerDelegate gestiona los callbacks del ciclo de vida del SDK. Implementa los cuatro métodos obligatorios:

MétodoCuándo se llama
onErrorAcessoBioManager(error)Ocurrió un error durante la operación del SDK
onUserClosedCameraManually()El usuario cerró la cámara manualmente
onSystemClosedCameraTimeoutSession()Se alcanzó el límite de sesión de 40 segundos
onSystemChangedTypeCameraTimeoutFaceInference()No se detectó ningún rostro durante 13 segundos — cambia a captura manual
class ViewController: UIViewController, AcessoBioManagerDelegate {
var unicoCheck: AcessoBioManager!

override func viewDidLoad() {
super.viewDidLoad()
unicoCheck = AcessoBioManager(viewController: self)
}

func onErrorAcessoBioManager(_ error: ErrorBio!) { }
func onUserClosedCameraManually() { }
func onSystemClosedCameraTimeoutSession() { }
func onSystemChangedTypeCameraTimeoutFaceInference() { }
}
Métodos de delegate obligatorios

Los cuatro métodos de delegate mencionados anteriormente deben crearse en tu proyecto (aunque no tengan ninguna lógica). De lo contrario, el proyecto no compilará correctamente.

Paso 2 — Implementar DocumentCameraDelegate y AcessoBioDocumentDelegate

Estos delegates gestionan los callbacks del resultado de la captura de documentos:

MétodoDescripción
onSuccessDocument(result)Captura exitosa — devuelve DocumentResult con base64 (vista previa) y encrypted (JWT para la API)
onErrorDocument(errorBio)Captura fallida — devuelve un ErrorBio con código y descripción
class ViewController: UIViewController, AcessoBioManagerDelegate,
DocumentCameraDelegate, AcessoBioDocumentDelegate {

func onSuccessDocument(_ result: DocumentResult!) { }
func onErrorDocument(_ errorBio: ErrorBio!) { }
}
Paso 3 — Llamar a prepareDocumentCamera y openDocument

Llame a prepareDocumentCamera pasando la configuración del SDK. Cuando la cámara esté lista, se activará onCameraReadyDocument con un AcessoBioCameraOpenerDelegate — abra la cámara usando openDocument() y pase el DocumentEnums deseado:

  • onCameraReadyDocument(cameraOpener) — la cámara está lista; llame a openDocument(.CNH, delegate: self).
  • onCameraFailedDocument(message) — la preparación de la cámara falló (ErrorPrepare es una extensión de ErrorBio).
@IBAction func openCamera(_ sender: Any) {
unicoCheck.build().prepareDocumentCamera(self, config: YourUnicoConfigClass())
}

func onCameraReadyDocument(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {
cameraOpener.openDocument(DocumentEnums.CNH, delegate: self)
}

func onCameraFailedDocument(_ message: ErrorPrepare!) { }

Para el manejo completo del resultado, consulte Recibir el resultado.