Captura de Selfie

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 da selfie


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 Personalização iOS.

Inicializar o SDK


Para iniciar com SDK iOS do Unico Check, 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 é instanciar o builder informando o contexto e ambiente 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>

@implementation ViewController: UIViewController
- (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

Configuração de ambientes


Configure o ambiente que será utilizado na execução da SDK. Utilize o enumerado Environment que contém os seguintes enumerados:

  • PROD: para ambiente de Produção;

  • UAT: para ambiente de Homologação.

Veja como implementar no exemplo abaixo:

 [unicoCheck setEnvironment:UAT];

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.

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

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).

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).

Configurar modo de câmera


O SDK tem configurado e habilitado por padrão o enquadramento inteligente e a captura automática. Em função disso, deve-se configurar o modo de câmera no seu builder da seguinte forma:

.m:
- (IBAction)configureSmartCamera:(UIButton *)sender {
   // Objeto unicoCheck da classe AcessoBioManager
   [unicoCheck setSmartFrame:true];
   [unicoCheck setAutoCapture:true];
}

Implementar delegates para eventos da câmera


O método de abertura da câmera 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 onErrorSelfie) ou sucesso (método onSuccessSelfie) na captura de imagens.

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

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

@interface ViewController: UIViewController <AcessoBioManagerDelegate, SelfieCameraDelegate,
   AcessoBioSelfieDelegate> {
  AcessoBioManager *unicoCheck;
  // Your code from previous and next steps here
}

Método onSuccessSelfie


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

- (void)onSuccessSelfie:(SelfieResult *)result {
    NSLog(@"%@", result.base64);
} 

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;

  • O atributo encrypted deve ser enviado na chamada das APIs REST do by Client.

Método onErrorSelfie


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

- (void)onErrorSelfie:(ErrorBio *)errorBio {
  // Your code
}

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

Configurar ambientes


Caso não seja configurado, a SDK usa o ambiente configurado em através do arquivo de configuração (getHostKey). Caso getHostKey não esteja sendo usado, um erro é retornado.

É possível configurar o ambiente que será utilizado na execução da SDK. Utilize o enumerado EnvironmentEnum que contém os seguintes enumerados:

  • EnvironmentEnum.PROD: para ambiente de Produção

  • EnvironmentEnum.UAT: para ambiente de Homologação

Veja como implementar no exemplo abaixo:

[unicoCheck setEnvironment:PROD];

Preparar e abrir câmera


Para seguir com a abertura da câmera, primeiro deve-se prepará-la utilizando o método prepareSelfieCamera. Este método recebe como parâmetro a implementação da classe SelfieCameraDelegate 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,
SelfieCameraDelegate, AcessoBioSelfieDelegate> {
    AcessoBioManager *unicoCheck;
}

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

Quando a câmera estiver preparada, o evento onCameraReady é disparado e 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 open():

- (void)onCameraReady:(id)cameraOpener {
    [cameraOpener open:self];
}

- (void)onCameraFailed:(ErrorPrepare *)message {
    // Your code
}

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

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

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


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


Dúvidas?

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

Atualizado

Isto foi útil?