> For the complete documentation index, see [llms.txt](https://docs.facephi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.facephi.com/docs.facephi-pt-br/sdks/sdk-mobile/framework-plugins/flutter/componentes/nfc.md).

# Captura de NFC

Seus principais processos são:

* 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

## Dependências <a href="#id-2-dependencia" id="id-2-dependencia"></a>

### Flutter:

```swift
dependencies:
  fphi_sdkmobile_nfc:
    hosted:
      name: fphi_sdkmobile_nfc
      url: https://facephicorp.jfrog.io/artifactory/api/pub/pub-pro-fphi/
    version: ^<versão>
```

### Android - Gradle:

```kotlin
implementation "com.facephi.androidsdk:nfc_component:$version"
```

### iOS - CocoaPods:

```swift
s.dependency 'FPHISDKNFCComponent', '~> $version'
```

## Método startNfcComponent <a href="#id-4-lanzamiento-simplificado" id="id-4-lanzamiento-simplificado"></a>

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.

Início do leitor NFC:

```dart
Future<Map> startNfcComponent({
  required NfcConfiguration widgetConfigurationJSON,
}) {
  return FphiSdkmobileNfcPlatform.instance.startNfcComponent(
      widgetConfigurationJSON: widgetConfigurationJSON
  );
}
```

## Configuração básica <a href="#id-5-configuracion-basica" id="id-5-configuracion-basica"></a>

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

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

```dart
class NfcConfiguration
{
  NfcDocumentType mDocType;
  String mDocNumber;
  String mBirthDate;
  String mExpirationDate;
  int? mExtractionTimeout;
  bool? mShowDiagnostic;
  bool? mShowTutorial;
  bool? mShowPreviousTip;
  bool? mVibrationEnabled;
  bool? mDebug;
  bool? mSkipPACE;
  bool? mExtractFacialImage;
  bool? mExtractSignatureImage;
}
```

### Configuração avançada do componente

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

{% content-ref url="/pages/eef0db4aa42227c8c9eca6fc50e35f8adb56d5b0" %}
[Configuração do NFC](/docs.facephi-pt-br/sdks/sdk-mobile/framework-plugins/extras/nfc/nfc-configuracion.md)
{% endcontent-ref %}

## Recebimento do resultado <a href="#id-6-recepcion-del-resultado" id="id-6-recepcion-del-resultado"></a>

A inicialização retornará as informações no formato ***NfcResult***. Podendo diferenciar entre um lançamento correto e um incorreto:

```dart
class NfcResult
{
  final SdkFinishStatus finishStatus;
  final String finishStatusDescription;
  final String errorDiagnostic;
  final String? errorMessage;
  final int timeoutStatus;
  final String facialImage;
  final String fingerprintImage;
  final String signatureImage;
  final dynamic nfcDocumentInformation;
  final dynamic nfcRawData;
  final dynamic nfcSecurityData;
  final dynamic nfcValidations;
  final dynamic nfcPersonalInformation;
}
```

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

{% content-ref url="/pages/2ec11ef5aadab8a126ea8787c4b61622ec7366ac" %}
[Resultado do NFC](/docs.facephi-pt-br/sdks/sdk-mobile/framework-plugins/extras/nfc/nfc-resultado.md)
{% endcontent-ref %}
