Pular para o conteúdo principal

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.

Sem validação de conteúdo

O SDK não realiza nenhum tipo de validação sobre o que está sendo capturado.

Frames de documentos disponíveis
FrameDescrição
DocumentEnums.CPFCaptura o CPF
DocumentEnums.CNHCaptura a CNH aberta
DocumentEnums.cnhFrenteCaptura a frente da CNH
DocumentEnums.cnhVersoCaptura o verso da CNH
DocumentEnums.RGCaptura o RG aberto
DocumentEnums.rgFrenteCaptura a frente do RG
DocumentEnums.rgVersoCaptura o verso do RG
DocumentEnums.noneFrame retangular genérico para qualquer outro documento
Frame genérico

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.

Iniciando uma captura de documento
Passo 1 — Implementar AcessoBioManagerDelegate

AcessoBioManagerDelegate trata os callbacks de ciclo de vida do SDK. Implemente os quatro métodos obrigatórios:

MétodoQuando é 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
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 obrigatórios

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étodoDescriçã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
class ViewController: UIViewController, AcessoBioManagerDelegate,
DocumentCameraDelegate, AcessoBioDocumentDelegate {

func onSuccessDocument(_ result: DocumentResult!) { }
func 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; chame openDocument(.CNH, delegate: self).
  • onCameraFailedDocument(message) — a preparação da câmera falhou (ErrorPrepare é uma extensão 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 o tratamento completo do resultado, consulte Recebendo o resultado.