Unico IDCloud - DevCenter
Página inicialAutenticaçãoAPIsSDKs
Portuguese (Brazil)
Portuguese (Brazil)
  • Introdução
  • SOBRE O IDCLOUD
    • Unico IDCloud
    • Capacidades
    • Meios de Integração
    • Capacidades e Meios de Integração
  • INTEGRAÇÃO
    • Guia de início rápido
    • Autenticação
      • Criando uma Conta de Serviço
      • Preparando para fazer uma requisição autenticada à API
      • Recursos adicionais
        • Exemplo em Javascript
        • Erros de autenticação
        • Postman Collection
    • Integração by Unico
      • Visão Geral
      • API
        • API Reference
          • Criação do Processo
            • Criação de processos separados por flows
          • Consultar Resultado do Processo
          • Obter Selfie do Usuário
          • Obter Conjunto Probatório
            • Especificação do conjunto probatório
          • Obter Documento Assinado
          • Obter Conjunto Probatório do Documento Assinado
        • Erros
      • Controlando a experiência
        • Redirecionando o usuário
        • SDK
        • QR Code
        • Personalizações
      • Recursos adicionais
        • Postman Collection
        • PoCs disponíveis
    • Integração by Client
      • Visão Geral
      • API
        • API Reference
          • Prova de vida + Verificação de Identidade + Alerta de comportamento
          • Prova de vida + Verificação de Identidade + Alerta de comportamento + Score de risco
          • Prova de vida + Validação 1:1 + Alerta de comportamento
          • Reaproveitamento e captura de documentos
        • Cenários de response
        • Erros
        • Recursos adicionais
          • Postman Collection
      • Padrão de captura (sem SDK)
    • Webhook
    • SDK
      • Visão Geral
      • Política de atualizações
      • Integração SDKs
        • SDK Android
          • Guia de instalação
          • Guia de uso e integração
            • Captura de Selfie
            • Captura de documento
          • Guia de tratamento de erros
          • Personalização Android
          • Solução de problemas
          • Release notes
        • SDK iOS
          • Guia de instalação
          • Guia de uso e integração
            • Captura de Selfie
            • Captura de documento
          • Guia de tratamento de erros
          • Personalização iOS
          • Solução de problemas
          • Release notes
        • SDK Flutter
          • Guia de instalação
          • Guia de uso e integração
            • Captura de Selfie
            • Captura de documento
          • Guia de tratamento de erros
          • Personalização Flutter
          • Solução de problemas
          • Release notes
        • SDK Web
          • Guia de instalação
          • Guia de uso e integração
            • Captura de Selfie
            • Captura de documento
            • Acessibilidade
          • Guia de tratamento de erros
          • Personalização Web
          • Release notes
      • Recursos adicionais
        • PoCs disponíveis
        • Melhores práticas de implementação da SDK
  • help & faq
    • Glossário
    • FAQs
      • FAQ IDCloud
      • FAQ Autenticação
      • FAQ SDK
    • Central de ajuda
Fornecido por GitBook

Institucional

  • Sobre nós

Copyright © 2024 unico. All rights reserved

Nesta página
  • Frames de documentos disponíveis
  • Inicializar o SDK
  • Implementar as funções de callback
  • Implementar delegates para eventos da câmera
  • Método onSucessDocument
  • Método onErrorDocument
  • Preparar e abrir câmera
  • Realize um requisição POST na API REST do by Client

Isto foi útil?

Exportar como PDF
  1. INTEGRAÇÃO
  2. SDK
  3. Integração SDKs
  4. SDK iOS
  5. Guia de uso e integração

Captura de documento

Nesta seção, você encontrará todas as informações necessárias para o uso e integração do SDK da plataforma Unico IDCloud em seus aplicativos iOS para a captura do documento

AnteriorCaptura de SelfiePróximoGuia de tratamento de erros

Atualizado há 6 meses

Isto foi útil?


Este guia foi elaborado para ajudá-lo a implementar o SDK iOS de forma rápida e fácil. Abaixo veja o passo a passo de todo o processo de integração. Após isso, caso deseje personalizar a experiência, não deixe de ver a seção .

Frames de documentos disponíveis


Neste modo de câmera, existe um frame de captura para auxiliar o usuário a posicionar o documento corretamente. Após posicionar o documento corretamente, o usuário deve clicar no botão para realizar a captura da foto do documento.

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

Neste modo de câmera é possivel capturar os documentos:

  • RG: Captura do RG (separado em frente e verso);

  • CNH: Captura da CNH aberta;

  • CNH frente: Captura da frente da CNH;

  • CNH verso: Captura do verso da CNH;

  • CPF: Captura do documento de CPF;

  • Sem silhueta: Captura documento genérico.

Inicializar o SDK


Para iniciar com SDK iOS da plataforma Unico IDCloud, importe o SDK e implemente a interface AcessoBioManagerDelegate dentro da ViewController que deseja utilizar.

A implementação dessa classe é bem simples e pode ser feita com poucas linhas de código. Tudo que precisa fazer é intanciar o builder informando o contexto em questão e sobrescrever os métodos de callback com as lógicas de negócio de sua aplicação:

.m:
#import "ViewController.h"
#import <AcessoBio/AcessoBio.h>

@interface ViewController ()
@end

@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];   
    unicoCheck = [[AcessoBioManager alloc]initWithViewController:self];
}
   
- (void)onErrorAcessoBioManager:(ErrorBio *)error {
  // Your code
}

- (void)onSystemChangedTypeCameraTimeoutFaceInference {
  // Your code
}

- (void)onSystemClosedCameraTimeoutSession {
  // Your code
}

- (void)onUserClosedCameraManually {
  // Your code
}

@end
import UIKit
import AcessoBio

class ViewController: UIViewController, AcessoBioManagerDelegate {
  var unicoCheck: AcessoBioManager!

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

  func onErrorAcessoBioManager(_ error: ErrorBio!) {
    // Your code
  }

  func onUserClosedCameraManually() {
    // Your code
  }

  func onSystemClosedCameraTimeoutSession() {
    // Your code
  }

  func onSystemChangedTypeCameraTimeoutFaceInference() {
    // Your code
  }
}   

Implementar as funções de callback


Note que, conforme o exemplo anterior, o trabalho de implementação da interface AcessoBioManagerDelegate é, em grande parte, a configuração dos métodos de callback. Cada método é chamado em uma situação específica de retorno do SDK.

Basta sobrescrever os métodos exemplificados no passo anterior com as lógicas de negócio de sua aplicação:

1

onErrorAcessoBioManager(_ error: ErrorBio!)

Este método é invocado quando qualquer erro de implementação ocorrer ao utilizar algum dos métodos, como por exemplo, ao informar um tipo de documento incorreto para a funcionalidade de captura de documentos.

2

onUserClosedCameraManually()

Este método é invocado sempre quando o usuário fechar a câmera de forma manual, como por exemplo, ao clicar no botão "Voltar".

3

onSystemClosedCameraTimeoutSession()

Este método é invocado assim que o tempo máximo de sessão for atingido (Sem capturar nenhuma imagem).

Pode ser configurado no builder através do método setTimeoutSession. Este método deve receber o tempo máximo da sessão em segundos. É possível alterar o tempo máximo de sessão do seu usuário ao utilizar a funcionalidade de detecção do rosto (Câmera de selfie com captura inteligente). Caso ele ultrapasse o tempo determinado em seu processo para capturar a foto, você pode apresentar alguma mensagem personalizável ou instrução ao usuário. O valor padrão é de 40 segundos e seu valor mínimo também é de 40 segundos.

4

onSystemChangedTypeCameraTimeoutFaceInference()

Este método é invocado assim que o tempo máximo para detecção do rosto de um usuário for atingido (Sem ter nada detectado). Neste caso, o modo de câmera é alterado automaticamente para o modo de captura manual (Sem a silhueta de captura inteligente).

O tempo máximo de captura ao utilizar a detecção do rosto (Câmera de selfie com captura inteligente) é de 13 segundos. Se o usuário encontra alguma dificuldade para captura da foto através da detecção do rosto e ultrapasse o tempo determinado em seu processo, a captura é alterada automaticamente para a manual, tendo como objetivo facilitar a ação para o usuário (TimeoutToFaceInference).

Todos os métodos acima devem ser criados da forma indicada em seu projeto (Mesmo que sem nenhuma lógica). Caso contrário, o projeto não compila com sucesso.

Implementar delegates para eventos da câmera


O método de abertura da câmera (que é chamado no próximo passo) precisa saber o que fazer ao conseguir capturar uma imagem com sucesso ou ao ter algum erro no processo. É informado "o que fazer" ao método de abertura da câmera através da configuração de delegates que são chamados em situações de sucesso ou erro.

Através da configuração dos delegates, você pode especificar o que acontece em seu App em situações de erro (método onErrorDocument) ou sucesso (método onSuccessDocument) na captura de imagens.

Para a configuração dos delegates, você deve implementar as interfaces DocumentCameraDelegate e AcessoBioDocumentDelegate:

.h:
#import <UIKit/UIKit.h>
#import <AcessoBio/AcessoBio.h>
#import "SelfieCameraDelegate.h"

@interface ViewController: UIViewController <AcessoBioManagerDelegate, DocumentCameraDelegate, 
  AcessoBioDocumentDelegate> {
  AcessoBioManager *unicoCheck;
  // Your code from previous and next steps here
}
import UIKit
import AcessoBio

class ViewController: UIViewController, AcessoBioManagerDelegate, DocumentCameraDelegate, 
  AcessoBioDocumentDelegate {    
  // Your code from previous and next steps here
}

Método onSucessDocument


Ao efetuar uma captura de imagem com sucesso, este método é invocado e retorna um objeto do tipo ResultCamera que é utilizado posteriormente na chamada das APIs REST.

- (void)onSuccessDocument:(DocumentResult *)result {
    NSLog(@"%@", result.base64);
} 
func onSuccessDocument(_ result: DocumentResult!) {
    // Your code
 }

O objeto ResultCamera retorna 2 atributos: base64 e encrypted:

  • O atributo base64 pode ser utilizado se quiser exibir uma prévia da imagem em seu app;

Método onErrorDocument


Ao ocorrer algum erro na captura de imagem, este método é invocado e retorna um objeto do tipo ErrorBio.

- (void)onErrorDocument:(ErrorBio *)errorBio {
    // Your code
}
func onErrorDocument(_ errorBio: ErrorBio!) {
    // Your code
 }

Preparar e abrir câmera


Para abrir da câmera, é necessário prepará-la utilizando o método prepareDocumentCamera. Este método recebe como parâmetro a implementação da classe DocumentCameraDelegate e o JSON com as credenciais, gerado na etapa acima.

.h:
#import <UIKit/UIKit.h>
#import <AcessoBio/AcessoBio.h>
#import "SelfieCameraDelegate.h"

@interface ViewController: UIViewController < AcessoBioManagerDelegate,
DocumentCameraDelegate, AcessoBioDocumentDelegate> {
    AcessoBioManager *unicoCheck;
}

.m:
- (IBAction)openCamera:(UIButton *)sender {
    [[unicoCheck build] prepareDocumentCamera:self config:[YourUnicoConfigClass new]];
}
import UIKit
import AcessoBio

class ViewController: UIViewController, AcessoBioManagerDelegate, 
DocumentCameraDelegate, AcessoBioDocumentDelegate {
    @IBAction func openCamera(_ sender: Any) {
        unicoCheck.build().prepareDocumentCamera(self, config: YourUnicoConfigClass())
    }
}

Quando a câmera estiver preparada, o evento onCameraReadyDocument é disparado, que recebe como parâmetro um objeto do tipo AcessoBioCameraOpenerDelegate.

Você deve sobrescrever este método, efetuando a abertura da câmera com o objeto recebido através do método openDocument(), recebendo os parâmetros tipo de documento a ser capturado, sendo eles:

Parâmetro
Descrição

DocumentEnums.CPF

Frame para captura da frente do CPF

DocumentEnums.CNH

Frame para captura da CNH aberta

DocumentEnums.cnhFrente

Frame para captura da frente da CNH

DocumentEnums.cnhVerso

Frame para captura do verso da CNH

DocumentEnums.RG

Frame para captura do RG aberto

DocumentEnums.rgFrente

Frame para captura da frente do RG

DocumentEnums.rgVerso

Frame para captura do verso do RG

DocumentEnums.none

Frame para captura de qualquer outro documento

Caso precise capturar um documento que não possuímos um frame específico (ex: RNE, entre outros), utilize o frame DocumentEnums.none, que irá te possibilitar um frame genérico, retangular, que pode ser utilizado para orientar qualquer captura.

Os delegates implementados acima (aqui descritos como Self):

- (void)onCameraReadyDocument:(id)cameraOpener {
    [cameraOpener openDocument:DocumentCNH delegate:self];
}

- (void)onCameraFailedDocument:(ErrorPrepare *)message {
  // Your code
}
func onCameraReadyDocument(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {
    cameraOpener.openDocument(DocumentEnums.CNH, delegate: self)
}
 
func onCameraFailedDocument(_ message: ErrorPrepare!) {
  // Your code
}

Caso ocorra algum erro ao preparar a câmera, o evento onCameraFailedDocument é disparado. Você deve implementar este método aplicando as regras de negócio de seu App.

Em caso de sucesso, o evento onSuccessDocument é disparado, conforme explicado na seção acima.

Realize um requisição POST na API REST do by Client



Ao ser invocado, o método recebe um parâmetro do tipo ErrorBio que contem detalhes do erro. Saiba mais sobre o tipo ErrorBio no artigo de deste SDK.

Tanto o atributo encrypted quanto o atributo base64 podem ser enviados na chamada das APIs REST do .

Se for necessário converter o base64 para bitmap, a maneira padrão não funciona para o Android. É necessário realizar o split a partir da vírgula(,) para que funcione. Se quiser saber mais, leia o artigo .

Saiba mais sobre os tipos de ErrorBio na seção de do SDK.

O tipo ErrorPrepare é uma extensão de ErrorBio contendo assim todas as suas propriedades. Saiba mais sobre o tipo ErrorBio na seção de do SDK.

A captura das imagens é apenas a primeira parte da jornada. Após capturar a imagem, é necessário enviar o base64 gerado pelo SDK para as APIs REST do by Client. Saiba mais na seção .

Dúvidas?

Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .

tratamento de erros
by Client
How to convert a Base64 string into a Bitmap image to show it in a ImageView?
tratamento de erros
tratamento de erros
CreateProcess do by Client
​
Central de Ajuda
Personalização iOS