Captura de documentos
Este componente precisa de uma versão mínima do iOS9
Introdução
Este componente é responsável pela captura e análise de documentos de identidade, permitindo extrair informações estruturadas e obter imagens processadas do documento.
Suas principais funcionalidades são:
Gerenciamento interno da câmera e das permissões.
Assistência guiada para a captura do anverso e verso do documento.
Extração automática de dados por meio de OCR.
Obtenção de imagens processadas do documento e de elementos associados (rosto, assinatura etc.).
Alto nível de configuração: países, idiomas, tipos e modelos de documentos.
Dependências
Para evitar conflitos e problemas de compatibilidade, se o projeto contiver versões antigas de bibliotecas da Facephi (Widgets), elas devem ser removidas por completo antes de instalar os componentes de SDK Mobile.
CocoaPods
As bibliotecas da Facephi são distribuídas remotamente por meio de gerenciadores de dependências. As dependências obrigatórias que deverão ter sido instaladas previamente (adicionando-as no arquivo Podfile do projeto) são:
pod 'FPHISDKMainComponent', '~> $VERSION'Para instalar o componente SelphID, adicione a dependência correspondente no
Podfiledo projeto.
Swift Package Manager (SPM)
Se você usa SPM, certifique-se de que as dependências obrigatórias do SDK estejam previamente instaladas.
Para instalar o componente SelphID, inclua-o nos módulos do projeto.
Permissões
No aplicativo cliente onde os componentes serão integrados, é necessário incorporar o seguinte elemento no arquivo Info.plist:
Controladores disponíveis
Controlador
Descrição
SelphIDController
Controlador principal de reconhecimento de documentos
Recepção de erros
finishStatus: Indicará se a operação foi concluída corretamente. Valores possíveis:
errorType: Erros próprios do widget.
Em iOS, se for interpolado diretamente, mostrará SELPHID_TIMEOUT. Em iOS não existe um caso TIMEOUT sem prefixo.
Para serializar o erro, deve-se usar:
Isso retorna SPD_TIMEOUT tanto se o enum for SDK_TIMEOUT quanto SELPHID_TIMEOUT.
Comportamento em Timeout
Em um Timeout, o resultado tem:
finishStatus:STATUS_ERRORdata:nil(não é retornado umSelphIDResult)errorType:.SELPHID_TIMEOUT(UIImage?, UIImage?)
O caso SELPHID_TIMEOUT preserva, quando disponíveis, as imagens brutas do documento capturadas antes do Timeout (rawFrontDocument e rawBackDocument do widget). Essas informações não faz parte de data nem é retornada como rawFrontDocument / rawBackDocument do resultado de sucesso; só pode ser lida em iOS por meio de pattern matching sobre errorType:
Se chegar como SELPHID_TIMEOUT, as imagens associadas podem ser nil quando o Timeout ocorre pela via de erro do widget (FWMETimeout) em vez do delegate captureTimeout().
Em iOS, propriedades como timeoutDiagnostic ou captureProgress não são incluídas no SdkResult de erro. O componente usa captureProgress internamente para exibir a mensagem da tela de diagnóstico quando showDiagnostic está ativo.
Se showDiagnostic estiver ativo, o callback output não é invocado no instante do Timeout: primeiro é exibida a tela de diagnóstico e o resultado é entregue ao clicar em fechar. Com showDiagnostic desativado, o callback é executado imediatamente.
A lista a seguir inclui erros do contrato multiplataforma; alguns não ocorrem em iOS (por exemplo, SPD_MOVE_FAIL).
SPD_APPLICATION_CONTEXT_ERROR: O contexto de aplicação necessário é nulo.
SPD_BAD_EXTRACTOR_CONFIGURATION_ERROR: Widget: Configuração do extrator incorreta
SPD_CAMERA_PERMISSION_DENIED: O usuário recusou as permissões.
SPD_CANCEL_BY_USER: O usuário cancelou o processo.
SPD_CANCEL_LAUNCH: Foi feita uma cancelamento geral do SDK.
SPD_COMPONENT_LICENSE_ERROR: A licença do componente não está correta.
SPD_CONTROL_NOT_INITIALIZATED_ERROR: Widget: Erro de inicialização
SPD_EMPTY_LICENSE: O String de licença está vazio.
SPD_EXTRACTION_LICENSE_ERROR: Widget: Erro de licença
SPD_HARDWARE_ERROR: Widget: Erro de hardware
SPD_INITIALIZATION_ERROR: Erro de inicialização.
SPD_MOVE_FAIL: O usuário não se moveu conforme foi especificado no processo.
SPD_NO_DATA_ERROR: Os dados de entrada são nulos.
SPD_OPERATION_NOT_CREATED: Não há nenhuma operação em andamento.
SPD_RESOURCES_NOT_FOUND: O zip de recursos não foi encontrado
SPD_SETTINGS_PERMISSION_ERROR: Widget: Erro de permissões
SPD_TIMEOUT: Timeout no processo
SELPHID_TIMEOUTdo enum).SPD_UNEXPECTED_CAPTURE_ERROR: Widget: Erro na captura
SPD_UNKNOWN_ERROR: Erro desconhecido
SPD_WIDGET_RESULT_DATA_ERROR: Erro nos dados de saída do widget
Atualizado