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.
El SDK no realiza ningún tipo de validación sobre lo que se está capturando.
| Marco | Descripción |
|---|---|
DocumentEnums.CPF | Captura el CPF |
DocumentEnums.CNH | Captura la CNH abierta |
DocumentEnums.cnhFrente | Captura el frente de la CNH |
DocumentEnums.cnhVerso | Captura el dorso de la CNH |
DocumentEnums.RG | Captura el RG abierto |
DocumentEnums.rgFrente | Captura el frente del RG |
DocumentEnums.rgVerso | Captura el dorso del RG |
DocumentEnums.none | Marco rectangular genérico para cualquier otro documento |
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.
Paso 1 — Implementar AcessoBioManagerDelegate
AcessoBioManagerDelegate gestiona los callbacks del ciclo de vida del SDK. Implementa los cuatro métodos obligatorios:
| Método | Cuá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 |
- Swift
- Objective-C
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() { }
}
@implementation ViewController: UIViewController
- (void)viewDidLoad {
[super viewDidLoad];
unicoCheck = [[AcessoBioManager alloc]initWithViewController:self];
}
- (void)onErrorAcessoBioManager:(ErrorBio *)error { }
- (void)onSystemChangedTypeCameraTimeoutFaceInference { }
- (void)onSystemClosedCameraTimeoutSession { }
- (void)onUserClosedCameraManually { }
@end
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étodo | Descripció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 |
- Swift
- Objective-C
class ViewController: UIViewController, AcessoBioManagerDelegate,
DocumentCameraDelegate, AcessoBioDocumentDelegate {
func onSuccessDocument(_ result: DocumentResult!) { }
func onErrorDocument(_ errorBio: ErrorBio!) { }
}
// .h
@interface ViewController: UIViewController <AcessoBioManagerDelegate,
DocumentCameraDelegate, AcessoBioDocumentDelegate> {
AcessoBioManager *unicoCheck;
}
// .m
- (void)onSuccessDocument:(DocumentResult *)result {
NSLog(@"%@", result.base64);
}
- (void)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 aopenDocument(.CNH, delegate: self).onCameraFailedDocument(message)— la preparación de la cámara falló (ErrorPreparees una extensión deErrorBio).
- Swift
- Objective-C
@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!) { }
- (IBAction)openCamera:(UIButton *)sender {
[[unicoCheck build] prepareDocumentCamera:self config:[YourUnicoConfigClass new]];
}
- (void)onCameraReadyDocument:(id)cameraOpener {
[cameraOpener openDocument:DocumentCNH delegate:self];
}
- (void)onCameraFailedDocument:(ErrorPrepare *)message { }
Para el manejo completo del resultado, consulte Recibir el resultado.