Captura de documentos
Captura de documentos de identidade. O SDK apresenta um frame para auxiliar o usuário no posicionamento do documento; após o posicionamento, o usuário clica no botão para capturar a foto.
O SDK não realiza nenhum tipo de validação sobre o que está sendo capturado.
| Frame | Descrição |
|---|---|
DocumentEnums.CPF | Captura o CPF |
DocumentEnums.CNH | Captura a CNH aberta |
DocumentEnums.cnhFrente | Captura a frente da CNH |
DocumentEnums.cnhVerso | Captura o verso da CNH |
DocumentEnums.RG | Captura o RG aberto |
DocumentEnums.rgFrente | Captura a frente do RG |
DocumentEnums.rgVerso | Captura o verso do RG |
DocumentEnums.none | Frame retangular genérico para qualquer outro documento |
Se você precisar capturar um documento para o qual não há um frame específico (por exemplo, RNE), use DocumentEnums.none — um frame genérico e retangular que pode ser utilizado para guiar qualquer captura.
Para a lista completa de tipos de documentos suportados, consulte Referência de API > Enums.
Passo 1 — Implementar AcessoBioManagerDelegate
AcessoBioManagerDelegate trata os callbacks de ciclo de vida do SDK. Implemente os quatro métodos obrigatórios:
| Método | Quando é chamado |
|---|---|
onErrorAcessoBioManager(error) | Ocorreu um erro durante a operação do SDK |
onUserClosedCameraManually() | O usuário fechou a câmera manualmente |
onSystemClosedCameraTimeoutSession() | O limite de 40 segundos da sessão foi atingido |
onSystemChangedTypeCameraTimeoutFaceInference() | Nenhum rosto detectado por 13 segundos — muda para 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
Todos os quatro métodos de delegate acima devem ser criados no seu projeto (mesmo sem lógica alguma). Caso contrário, o projeto não compilará com sucesso.
Passo 2 — Implementar DocumentCameraDelegate e AcessoBioDocumentDelegate
Esses delegates gerenciam os callbacks de resultado da captura de documentos:
| Método | Descrição |
|---|---|
onSuccessDocument(result) | Captura bem-sucedida — retorna DocumentResult com base64 (prévia) e encrypted (JWT para a API) |
onErrorDocument(errorBio) | Captura falhou — retorna um ErrorBio com código e descrição |
- 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 { }
Passo 3 — Chamar prepareDocumentCamera e openDocument
Chame prepareDocumentCamera passando a configuração do SDK. Quando a câmera estiver pronta, onCameraReadyDocument é acionado com um AcessoBioCameraOpenerDelegate — abra a câmera usando openDocument() e passe o DocumentEnums desejado:
onCameraReadyDocument(cameraOpener)— câmera pronta; chameopenDocument(.CNH, delegate: self).onCameraFailedDocument(message)— a preparação da câmera falhou (ErrorPrepareé uma extensão 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 o tratamento completo do resultado, consulte Recebendo o resultado.