For the complete documentation index, see llms.txt. This page is also available as Markdown.

Envio de arquivos e gerenciamento de Código QR - Capture

Este componente precisa de uma versão mínima do iOS14

Introdução

O envio de arquivos e a leitura e geração de códigos QR são realizados com o Capture Component.

Este componente permite o envio de documentos tirando uma foto com a câmera do dispositivo ou a partir da galeria. Suas principais funcionalidades são:

  • Envio de documentos por câmera ou galeria.

  • Leitura de códigos QR.

  • Geração de códigos QR.

Na seção de Lançamento simplificado são detalhados os passos necessários para a integração básica do SDK. Nesta seção é adicionada a informação para o lançamento deste componente.


Dependências

Para evitar conflitos e problemas de compatibilidade, caso se queira instalar o componente em um projeto que contenha uma versão antiga das bibliotecas Facephi (Widgets), elas deverão ser removidas por completo antes da instalação dos componentes da SDKMobile.

CocoaPods

  • Atualmente as bibliotecas Facephi são distribuídas remotamente por meio de diferentes gerenciadores de dependências, neste caso CocoaPods. 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 de Captura, deverá ser incluída a seguinte entrada no Podfile da aplicação:

pod 'FPHISDKCaptureComponent', '~> $VERSION'

SPM

  • As dependências obrigatórias que deverão ter sido instaladas previamente são:

  • Para instalar o componente de SelphID, deverá ser incluído nos módulos do projeto:

IMPORTANTE: Se estiver usando FileUploaderController via SPM, os recursos e assets que o componente precisa requerem a execução de um script em cada compilação do target.

Para tornar esse processo automático, o script deve ser adicionado em Target -> Build Phases -> + Run Script

É importante desmarcar a opção Somente para builds de instalação.

Se o script não for adicionado, ocorrerá um crash em tempo de execução quando o FileUploaderController for inicializado.


Controladores disponíveis

Controlador

Descrição

FileUploaderController

Controlador para a captura de documentos

QrReaderController

Controlador para a captura de QRs

QrGeneratorController

Controlador para a geração de QRs


Lançamento simplificado

Uma vez iniciado o SDK e criada uma nova operação, será possível lançar o componente. Será possível fazer uso de qualquer um de seus controladores para executar sua funcionalidade.

Lançamento da captura de documentos:

Lançamento da captura de QR:

Lançamento da geração de QR:


Configuração básica

Para os controladores de captura de componentes e captura de QR, é possível gerar a configuração com os parâmetros padrão. No caso da geração do QR, será necessário o texto que será usado:


Recebimento do resultado

O lançamento retornará a informação no formato SdkResult.

  • errorType

  • finishStatus

  • data

Recebimento de erros

Os erros serão retornados como um objeto 'CaptureError'.

Lista de erros:

  • CAP_ACTIVITY_RESULT_MSG_ERROR: O resultado retornado pela atividade está incorreto ou não contém as informações necessárias para continuar.

  • CAP_APPLICATION_CONTEXT_ERROR: O contexto de aplicação necessário é nulo ou inválido, impedindo a inicialização correta do módulo de captura.

  • CAP_CAMERA_ERROR: Ocorreu um erro interno relacionado à câmera do dispositivo (falha de abertura, inicialização ou captura).

  • CAP_CAMERA_PERMISSION_DENIED: O usuário negou as permissões necessárias para acessar a câmera.

  • CAP_CANCEL_BY_USER: O usuário cancelou manualmente o processo de captura.

  • CAP_CANCEL_LAUNCH: O processo foi cancelado de forma geral pelo SDK ou por uma ação externa.

  • CAP_COMPONENT_LICENSE_ERROR: A licença do componente não é válida, expirou ou não corresponde à configuração necessária.

  • CAP_EMPTY_LICENSE: A string de licença está vazia ou não foi fornecida.

  • CAP_FETCH_DATA_ERROR: Ocorreu um erro ao obter ou processar os dados necessários para executar o Fluxo. (Inclui informações adicionais no campo error.)

  • CAP_FLOW_ERROR: Ocorreu um erro interno durante a execução do Fluxo de captura. (Inclui informações adicionais no campo error.)

  • CAP_INITIALIZATION_ERROR: Erro ao inicializar os componentes necessários do SDK. (Inclui informações detalhadas no campo error.)

  • CAP_FILE_UPLOADER_CAPTURE_ERROR: Erro durante o processo de envio dos arquivos gerados na captura.

  • CAP_MANAGER_NOT_INITIALIZED: Os managers necessários para executar o processo não foram inicializados corretamente.

  • CAP_NO_DATA_ERROR: Os dados de entrada necessários são nulos, inexistentes ou insuficientes para continuar o processo.

  • CAP_OPERATION_NOT_CREATED: Não foi possível criar ou recuperar uma operação ativa necessária para continuar. (Inclui informações detalhadas no campo error.)

  • CAP_QR_CAPTURE_ERROR: Erro durante a captura ou leitura do Código QR.

  • CAP_QR_GENERATION_ERROR: Erro ao gerar o Código QR solicitado.

  • CAP_TIMEOUT: O tempo máximo permitido foi atingido em alguma das fases do processo.

  • CAP_FLOW_VIDEO_RECORDING_ERROR: Erro durante a Gravação de Vídeo dentro do Fluxo estabelecido.

  • CAP_FLOW_TRACKING_ERROR: Erro ao realizar o Tracking necessário para concluir o Fluxo de captura.

Recebimento do resultado correto - data

Recebimento do resultado da captura de documentos

Na parte de SdkResult.Success - data, teremos a classe FileUploaderResult.

Os campos retornados no resultado são os seguintes:

capturedDocumentList

Lista de arquivos capturados. Podem ser imagens ou PDFs. Os campos retornados de cada um são:

  • mimeType

  • timestampMillis

  • content: FileContent -> determina se é uma imagem ou um documento PDF. Se for uma imagem, também é indicado se foi capturada com a câmera ou a partir da galeria.

Por exemplo, para ler o primeiro elemento do array:

Recebimento do resultado da captura de QR

Na parte de SdkResult.Success - data, teremos a classe QrResult.

Os campos retornados no resultado são os seguintes:

qrText

Texto obtido do QR

Recebimento do resultado da geração de QR

Na parte de SdkResult.Success - data, teremos uma SdkImage com o QR criado.


Informações avançadas

Esta seção amplia as informações do componente.

Configuração avançada do componente

Configuração da captura de documentos

Para iniciar o componente atual, deverá ser criado um objeto FileUploaderConfigurationData que será a configuração do controlador do componente.

A seguir, estão detalhados todos os campos que fazem parte desta classe.

  • vibrationEnabled: Indica a ativação da vibração quando o Widget terminar com sucesso.

  • extractionTimeout: Define o tempo máximo que a captura pode ser realizada.

  • showDiagnostic: Mostra telas de diagnóstico ao final do processo.

  • showPreviousTip: Mostra uma tela prévia ao lançamento da captura com informações sobre o processo a ser realizado e um botão para o lançamento.

  • maxScannedDocs: Número máximo de documentos que poderão ser capturados

  • allowGallery: É habilitado o acesso à galeria para a obtenção de imagens ou PDFs

  • onlyGalleryMode: Abre o Fluxo diretamente no modo galeria, sem mostrar a captura com câmera. Por padrão true.

  • maxGalleryImageSizeKb: Tamanho máximo permitido para imagens selecionadas na galeria, em KB. Por padrão 2048. Se uma imagem exceder esse limite, o componente retorna CAP_IMAGE_TOO_LARGE.

Configuração da captura de QR

Para iniciar o componente atual, deverá ser criado um objeto QrCaptureConfigurationData que será a configuração do controlador do componente.

A seguir, estão detalhados todos os campos que fazem parte desta classe.

  • vibrationEnabled: Indica a ativação da vibração quando o Widget terminar com sucesso.

  • extractionTimeout: Define o tempo máximo que a captura pode ser realizada.

  • showDiagnostic: Mostra telas de diagnóstico ao final do processo.

  • showPreviousTip: Mostra uma tela prévia ao lançamento da captura com informações sobre o processo a ser realizado e um botão para o lançamento.

  • showTutorial: Indica se o componente ativa a tela de tutorial. Nesta visualização, é explicado de forma intuitiva como a captura é realizada.

  • cameraShape: Permite escolher entre uma máscara quadrada e uma redonda.


Personalização do componente

Além das alterações que podem ser feitas no nível do SDK (as quais são explicadas no documento de Personalização do SDK), este componente específico permite a modificação de sua interface.

Textos

Os textos podem ser personalizados sobrescrevendo o valor das seguintes chaves em um Localizable.strings. As chaves que contêm o sufixo _alt são os literais utilizados nas etiquetas de acessibilidade necessárias para a funcionalidade de VoiceOver.

Dessa forma, se desejar modificar, por exemplo, o texto “Começar” da chave capture_widget_tip_button para o idioma es, será necessário ir ao arquivo Localizable.strings da pasta es.lproj caso exista (se não, será necessário criá-lo) e, então, adicionar:

"capture_widget_tip_button"="Start";

Se uma mensagem não for especificada no arquivo do idioma, ela será preenchida com a mensagem padrão.

Animações

Se desejar modificar as animações (lottie) do SDK, é preciso incluir as animações com o mesmo nome na pasta res/raw/ da aplicação.

Atualizado