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

Captura de NFC

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

Introdução

O Componente tratado no documento atual recebe o nome de Componente NFC. Este é responsável por realizar a leitura de NFC de documentos de identidade e passaportes. Suas principais funcionalidades são as seguintes:

  • Gerenciamento interno do sensor de NFC.

  • Gerenciamento de permissões.

  • Análise do documento.

  • Análise do progresso.

  • Assistente nos processos de leitura.

  • Retorno de todas as informações possíveis de serem lidas

  • Retorno de imagens quando estiverem disponíveis para leitura

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 queira instalar o componente em um projeto que contenha uma Versão antiga das bibliotecas da Facephi (Widgets), eles deverão ser removidos completamente antes da instalação dos componentes da SDKMobile.

CocoaPods

  • As dependências obrigatórias que devem ter sido instaladas previamente (adicionando-as no arquivo Podfile do projeto) são:

pod 'FPHISDKMainComponent', '~> $SDK_VERSION'
  • Para instalar o componente de NFC, deverá ser incluída a seguinte entrada no Podfile do aplicativo:

SPM

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

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

Controladores disponíveis

Controlador

Descrição

NFCController

Controlador principal de leitura NFC

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:

Configuração básica

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

A configuração básica necessária é a seguinte:

Os dados necessários são os do documento que será capturado.

Recebimento do resultado

Os controllers devolverão as informações necessárias no formato SdkResult.

Recebimento de erros

Na parte do erro, internamente dispomos da classe NFCPassportReaderError. Esse enumerado contém muitos erros específicos que não acrescentam informação útil se forem devolvidos ao integrador, por isso são transformados em um tipo mais simples (ErrorType):

  • NFC_CANCEL_BY_USER: O usuário cancelou o processo.

  • NFC_COMPONENT_LICENSE_ERROR: A Licença do componente não está correta.

  • NFC_EMPTY_LICENSE: A String de Licença está vazia.

  • NFC_EXTRACT_DATA_ERROR: Erro nos dados extraídos.

  • NFC_INITIALIZATION_ERROR: Erro de inicialização.

  • NFC_LAST_COMMAND_EXPECTED: Erro no comando de finalização

  • NFC_ERROR: Erro geral

  • NFC_ERROR_DATA: Erro nos dados de entrada

  • NFC_ERROR_DISABLED: NFC desabilitado

  • NFC_ERROR_ILLEGAL_ARGUMENT: NFC com um tag incorreto

  • NFC_ERROR_IO: Erro de entrada/saída

  • NFC_ERROR_NOT_SUPPORTED: NFC não suportado

  • NFC_ERROR_TAG_LOST: Conexão perdida

  • NFC_OPERATION_NOT_CREATED: Não há nenhuma operação em curso.

  • NFC_TIMEOUT: Timeout no processo.

NOTA: NFC_INVALID_MRZ_KEY significa que a conexão não pôde ser estabelecida porque os dados de entrada da configuração (documentNumber, birthDate, expiryDate) não estão corretos. Todas as tentativas de leitura para esse NFC falharão enquanto um novo NFCController não for inicializado com os dados corretos.

Recebimento de execução correta - data

Na parte de data, teremos a classe NfcResult.

No caso deste componente, os campos retornados são os seguintes:

nfcRawData

Informações obtidas de cada tipo de dado em formato bruto.

nfcDocumentInformation

Informações obtidas do documento organizadas por:

  • type

  • documentNumber

  • issuer

  • expirationDate

  • mrzString

nfcPersonalInformation

Informações obtidas do documento organizadas por:

  • name

  • surname

  • address

  • nationality

  • personalNumber

  • birthdate

  • placeOfBirth

  • gender

nfcImages

Informações de imagens obtidas do documento organizadas por:

  • facialImage

  • fingerprintImage

  • signatureImage

nfcSecurityData

Informações dos dados de segurança do documento organizadas por:

  • ldsVersion

  • dataGroupsHashes

  • dataGroupsRead

  • documentSigningCertificateData

  • issuerSigningCertificateData

nfcValidations

Informações das validações do documento organizadas por:

  • accessProtocol

  • activeAuthenticationSupported

  • activeAuthenticationValidation

  • chipAuthenticationValidation

  • dataGroupsHashesValidation

  • documentSigningValidation

  • issuerSigningValidation

personalData

  • issuer

  • documentNumber

  • issueDate

  • expiryDate

  • name

  • surname

  • fullName

  • gender

  • birthDate

  • birthPlace

  • nationality

  • address

  • nfcKey

  • numSupport

  • mrz

Informações avançadas

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

Configuração avançada do componente

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

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

documentNumber

Indica o número do documento ou o número de suporte, dependendo do documento a ser lido.

Este campo é obrigatório.

birthDate

Indica a data de nascimento que aparece no documento ("dd/MM/yyyy").

Este campo é obrigatório.

expirationDate

Indica a data de expiração que aparece no documento ("dd/MM/yyyy").

Este campo é obrigatório.

extractionTimeout

Define o tempo máximo para realizar a leitura.

showTutorial

Indica se o componente ativa a tela de tutorial. Nessa tela é explicado de forma intuitiva como a captura é realizada.

vibrationEnabled

iOS não permite adicionar vibração durante as leituras de NFC.

enableDebugMode

Ativação do modo de depuração do componente.

skipPace

Indica que se deseja realizar apenas a leitura BAC de NFC. É uma leitura com informações mais simples e rápidas que permite a leitura de uma maior variedade de documentos.

showDiagnostic

Se lhe for dado o valor true, ao ocorrer um erro ou uma falta de permissões, o SDK mostrará uma tela com o erro retornado pelo Widget.

issuer

Indicamos o país de origem do documento a ser lido.

documentType

Indica o tipo de documento que será lido: - ID_CARD - PASSPORT - FOREIGN_CARD

activeAuthenticationChallenge

Este parâmetro permite injetar um desafio personalizado que pode ser verificado posteriormente para proteger contra ataques de repetição.

onlyPACE

Se for verdadeiro, detectará apenas documentos PACE/SAC. Disponível somente a partir de iOS ≥ 16. Requer a string PACE no arquivo de entitlements.

tagConnectionLostTimer

Antes existia um único temporizador que podia abranger mais de uma requisição quando a resposta era grande.

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.

Name

Valor

nfc_component_start_message

\nDeslize o documento\naté que o dispositivo o detecte\n

nfc_component_reading_face_message

Extraindo a imagem do rosto.

nfc_component_reading_images_message

Extraindo imagens.

nfc_component_reading_document_message

Extraindo os dados do documento.

nfc_component_error_retrieving_document_data_message

Ocorreu um erro durante a captura dos dados do documento

nfc_component_read_successful_title

NFC lido com sucesso

nfc_component_error

Ops! O NFC não pôde ser lido

text_error_tag_connection_lost

Leitura interrompida. Volte a colocar o documento na parte superior.

text_error_tag_connection_lost_timer

Houve um erro na leitura. Por favor, cancele para reiniciar o processo.

nfc_component_timeout_desc

Você excedeu o tempo de leitura de NFC. Por favor, tente novamente

text_chip_duplicated_session_error

O processo de captura foi duplicado; por favor, tente novamente após esta mensagem desaparecer

text_chip_security_serial_number_title

Número de série

text_chip_security_algorithm_sign_title

Algoritmo de assinatura

text_chip_security_algorithm_public_key_title

Algoritmo de chave pública

text_chip_security_certificated_impress_title

Impressão do certificado

text_chip_security_editor_title

Emissor

text_chip_security_subject_title

Sujeito

text_chip_security_valid_from_title

Válido desde

text_chip_security_valid_still_title

Válido até

text_loading_optional_description

Lendo, por favor, não mova o documento

icon_loading_filled_circle

🟢

icon_loading_void_circle

⚪️

nfc_component_end_confirmation_title

Encerrar

nfc_component_end_confirmation_message

Tem certeza de que deseja finalizar o processo?

nfc_component_cancel

Cancelar

nfc_component_agree

Aceitar

nfc_component_tutorial

Posicione em contato o documento com a parte traseira do seu dispositivo.

nfc_component_tutorial_iphone_15

Posicione em contato o documento com a parte frontal do seu dispositivo.

text_tutorial_nfc_title

Leitura de NFC

text_tutorial_nfc_button_ok

COMEÇAR

text_tutorial_nfc_button_tip

VEJA ESTAS DICAS

nfc_component_tutorial_title

Escanear NFC

nfc_component_tutorial_button_disabled

PREPARANDO NFC

nfc_component_tutorial_1

Quando aproximamos um cartão a um sensor, ocorre uma troca de informações chamada NFC.

nfc_component_tutorial_2

No seu celular, o sensor está na área marcada. Aqui você deverá aproximar o seu documento.

nfc_component_tutorial_3

Para uma melhor leitura, retire a capa do seu celular.

nfc_component_tutorial_3_pass

Mantenha fechado o passaporte para fazer a leitura.

nfc_component_next

PRÓXIMO

nfc_component_previous

ANTERIOR

nfc_component_more_info_finish

FINALIZAR

diagnostic_tag_connection_lost_title

A leitura não foi concluída

diagnostic_tag_connection_lost_description

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

"text_tutorial_nfc_button_ok"="EMPEZAR";

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

Animações

As animações a usar são inicializadas de forma semelhante na variável animations com um dicionário, tendo como valor uma string com o nome da animação que esteja em xcassets que se deseje usar.

Atualizado