document-detector-ionic-nosentry
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

DocumentDetector - Ionic Plugin

Plugin que chama os SDKs nativos em Android e iOS. Caso tenha alguma dúvida, envie um email para o nosso Head of Mobile

Atualmente, os documentos suportados são RG, CNH, RNE e CRLV. Caso tenha alguma sugestão de outro documento, contate-nos!

Políticas de privacidade e termos e condições de uso

Ao utilizar nosso plugin, certifique-se que você concorda com nossas Políticas de privacidade e nossos Termos e condições de uso.

Configurações

Android

No arquivo ROOT_PROJECT/android/app/build.gradle, adicione:

android {

    ...

    dataBinding.enabled = true

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }

    aaptOptions {
        noCompress "tflite"
    }
}

Importe o pacote e chame o método add() dentro da inicialização em android/app/src/main/java/io/ionic/starter/MainActivity.java:

import com.example.plugin.DocumentDetectorPlugin;

public class MainActivity extends BridgeActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    registerPlugin(DocumentDetectorPlugin.class);
  }
}

iOS

No arquivo ROOT_PROJECT/ios/App/Podfile, adicione no final do arquivo:

source 'https://github.com/combateafraude/iOS.git'
source 'https://cdn.cocoapods.org/' # ou 'https://github.com/CocoaPods/Specs' se o CDN estiver fora do ar

Por último, adicione a permissão de câmera no arquivo ROOT_PROJECT/ios/App/Runner/Info.plist:

<key>NSCameraUsageDescription</key>
<string>To read the documents</string>

Ionic

Adicione o plugin no seu arquivo ROOT_PROJECT/package.json:

"dependencies": {
    "document-detector-ionic": "https://github.com/combateafraude/Ionic/archive/refs/tags/document-detector-v6.6.0.tar.gz"
}

Após, execute:

  1. npm install
  2. ionic capacitor build < platform > [ options ]

Importando

import {DocumentDetector, DocumentDetectorStep, DocumentType} from 'document-detector-ionic';

Utilizando

    let documentDetector = new DocumentDetector();
    
    documentDetector.setMobileToken = '<your mobile token>';

    var documentDetectorSteps: Array<DocumentDetectorStep> = [
        new DocumentDetectorStep(DocumentType.RG_FRONT, null, null),
        new DocumentDetectorStep(DocumentType.RG_BACK, null, null)];

    documentDetector.setDocumentDetectorSteps = documentDetectorSteps;

    var response = await documentDetector.start();

    if(response.result == "SUCCESS"){
      // Sucesso
    }else if(response.result == "FAILURE"){
      // Falha. Confira reponse.type e response.message
    }else{
      // Usuário fechou a tela
    }

Customizações gerais

DocumentDetector
.setPeopleId(String peopleId)

CPF do usuário que está utilizando o plugin à ser usado para detecção de fraudes via analytics
.setAnalyticsSettings(bool useAnalytics)

Habilita/desabilita a coleta de dados para maximização da informação antifraude. O padrão é true
.setDocumentFlow(List<DocumentDetectorStep> documentSteps)

Fluxo de documentos à serem capturados no SDK
.setPopupSettings(bool show)

Altera a configuração dos popups inflados antes de cada documento. O padrão é true
.enableSound(bool enable)

Habilita/desabilita os sons. O padrão é true
.setNetworkSettings(int requestTimeout)

Altera as configurações de rede padrão. O padrão é 60 segundos
.setShowPreview(ShowPreview showPreview)

Preview para verificação da qualidade da foto
.setAndroidSettings(DocumentDetectorAndroidSettings androidSettings)

Customizações somente aplicadas em Android
.setIosSettings(DocumentDetectorIosSettings iosSettings)

Customizações somente aplicadas em iOS
DocumentDetectorStep constructor
DocumentType document

Documento a ser escaneado neste respectivo passo
DocumentDetectorStepCustomizationAndroid android

Customizações visuais do respectivo passo aplicados em Android
DocumentDetectorStepCustomizationIos ios

Customizações visuais do respectivo passo aplicados em iOS

| ShowPreview |

Caso deseje personalizar os valores, crie uma String em ROOT_PROJECT/android/app/src/main/res/values/strings.xml com o nome e valor desejado e parametrize
bool show

Habilita/Desabilita preview
String title

Título
String subTitle

Subtítulo
String confirmLabel

Texto do botão de confirmação
String retryLabel

Texto do botão de capturar novamente

Android

DocumentDetectorStepCustomizationAndroid constructor
String stepLabelStringResName

Nome do string resource à ser mostrado no label do nome do documento. Por exemplo, caso deseje mostrar a String "Teste", crie uma String em ROOT_PROJECT/android/app/src/main/res/values/strings.xml com o nome R.string.my_custom_string e valor "Teste" e parametrize "my_custom_string"
String illustrationDrawableResName

Nome do drawable resource à ser mostrado no popup de introdução da captura. Por exemplo, caso deseje mostrar uma ilustração customizada, salve-a em ROOT_PROJECT/android/app/src/main/res/drawable/my_custom_illustration.png e parametrize "my_custom_illustration"
String audioRawResName

Nome do raw resource à ser executado no início da captura. Por exemplo, caso deseje executar um áudio customizado, salve-o em ROOT_PROJECT/android/app/src/main/res/raw/my_custom_audio.mp3 e parametrize "my_custom_audio"
DocumentDetectorAndroidSettings constructor
DocumentDetectorCustomizationAndroid customization

Customização do layout em Android da activity
SensorSettingsAndroid sensorSettings

Customização das configurações dos sensores de captura
List<CaptureStage> captureStages

Array de estágios para cada captura. Esse parâmetro é útil caso você deseje modificar a maneira com qual o DocumentDetector é executado, como configurações de detecção, captura automática ou manual, verificar a qualidade da foto, etc
bool enableSwitchCameraButton

Permite habilitar ou desabilitar o botão de inversão da câmera. O padrão é True
bool useEmulator

Permite habilitar/desabilitar o uso de dispositivos emulados no SDK, recomendamos desabilitar o uso dos emuladores por questões de segurança. O padrão é false
bool useRoot

Permite habilitar/desabilitar o uso de dispositivos com root no SDK, recomendamos desabilitar o uso desses dispositivos por questões de segurança. O padrão é false
bool useDebug

Habilita/desabilita o uso do app em modo depuração. O padrão é false
bool useDeveloperMode

Permite habilitar/desabilitar o uso de dispositivos com o modo de desenvolvedor Android ativado. Recomendamos desabilitar o uso desses dispositivos por questões de segurança. O padrão é False
bool useAdb

Permite habilitar/desabilitar o uso do modo de depuração Android Debug Bridge (ADB). Recomendamos desabilitar o uso desses dispositivos por questões de segurança. O padrão é False
Exemplo de uso
   let documentDetector = new DocumentDetector();
   documentDetector.setAndroidSettings = new DocumentDetectorAndroidSettings({useEmulator: false, useDebug: true});
CaptureStage constructor
int durationMillis

Duração em milissegundos deste respectivo passo antes de passar para o próximo, se houver. null para infinito
bool wantSensorCheck

Flag que indica se este estágio deve/não deve passar pela validação dos sensores
QualitySettings qualitySettings

Configurações de verificação de qualidade do documento. O único parâmetro de QualitySettings é o limiar de aceitação da verificação da qualidade, de 1.0 a 5.0, onde 1.8 é o recomendado
DetectionSettings detectionSettings

Configurações de detecção do documento pela câmera. Os parâmetros de DetectionSettings são, respectivamente, o limiar de aceitação do documento, em um valor de 0.0 a 1.0 com 0.91 de recomendado e a quantidade de frames consecutivos corretos necessários, onde o recomendado é 5
CaptureMode captureMode

Modo de captura da foto. Pode ser CaptureMode.AUTOMATIC para a captura automática ou CaptureMode.MANUAL para a aparição de um botão para o usuário efetuar a captura
DocumentDetectorCustomizationAndroid constructor
String styleResIdName

Nome do style resource que define as cores do DocumentDetector. Por exemplo, caso deseje mudar as cores do SDK, crie um style em ROOT_PROJECT/android/app/src/main/res/values/styles.xml com o nome R.style.my_custom_style seguindo o template e parametrize "my_custom_style"
String layoutResIdName

Nome do layout resource que substituirá o layout padrão do DocumentDetector. Por exemplo, caso deseje mudar o layout do SDK, crie um layout em ROOT_PROJECT/android/app/src/main/res/layout/my_custom_layout.xml seguindo o template e parametrize "my_custom_layout"
String greenMaskResIdName

Nome do drawable resource à substituir a máscara verde padrão. Caso for usar este parâmetro, use uma máscara com a mesma área de corte, é importante para o algoritmo de detecção. Por exemplo, salve a imagem da máscara em ROOT_PROJECT/android/app/src/main/res/drawable/my_custom_green_mask.png e parametrize "my_custom_green_mask"
String redMaskResIdName

Nome do drawable resource à substituir a máscara vermelha padrão. Caso for usar este parâmetro, use uma máscara com a mesma área de corte, é importante para o algoritmo de detecção. Por exemplo, salve a imagem da máscara em ROOT_PROJECT/android/app/src/main/res/drawable/my_custom_red_mask.png e parametrize "my_custom_red_mask"
String whiteMaskResIdName

Nome do drawable resource à substituir a máscara branca padrão. Caso for usar este parâmetro, use uma máscara com a mesma área de corte, é importante para o algoritmo de detecção. Por exemplo, salve a imagem da máscara em ROOT_PROJECT/android/app/src/main/res/drawable/my_custom_white_mask.png e parametrize "my_custom_white_mask"
MaskType maskType

Define o tipo de máscara utilizada nas capturas. Existem três tipos: MaskType.DEFAULT, com o padrão pontilhado, MaskType.DETAILED, que detalha cada documento e MaskType.NONE, que remove completamente a máscara. O padrão é MaskType.DEFAULT
SensorSettingsAndroid constructor
SensorLuminositySettingsAndroid sensorLuminositySettings

Configurações do sensor de luminosidade à ser aplicado em todos os passos do SDK
SensorOrientationSettingsAndroid sensorOrientationSettings

Configurações do sensor de orientação à ser aplicado em todos os passos do SDK
SensorStabilitySettingsAndroid sensorStabilitySettings

Configurações do sensor de orientação à ser aplicado em todos os passos do SDK
SensorLuminositySettingsAndroid constructor
String messageResourceIdName

Nome do string resource à ser mostrado quando o ambiente estiver escuro. A mensagem padrão é "Ambiente muito escuro". Por exemplo, caso deseje mostrar a String "Teste", crie uma String em ROOT_PROJECT/android/app/src/main/res/values/strings.xml com o nome R.string.my_custom_luminosity_string e valor "Teste" e parametrize "my_custom_luminosity_string"
int luminosityThreshold

Limiar inferior entre luminosidade aceitável/não aceitável, em lx. O padrão é 5 lx
SensorOrientationSettingsAndroid constructor
String messageResourceIdName

Nome do string resource à ser mostrado quando o celular não estiver na horizontal. A mensagem padrão é "Celular não está na horizontal". Por exemplo, caso deseje mostrar a String "Teste", crie uma String em ROOT_PROJECT/android/app/src/main/res/values/strings.xml com o nome R.string.my_custom_orientation_string e valor "Teste" e parametrize "my_custom_orientation_string"
double orientationThreshold

Limiar inferior entre orientação correta/incorreta, em variação de m/s² da orientação totalmente horizontal. O padrão é 3 m/s²
SensorStabilitySettingsAndroid constructor
String messageResourceIdName

Nome do string resource à ser mostrado quando o celular não estiver estável. A mensagem padrão é "Mantenha o celular parado". Por exemplo, caso deseje mostrar a String "Teste", crie uma String em ROOT_PROJECT/android/app/src/main/res/values/strings.xml com o nome R.string.my_custom_stability_string e valor "Teste" e parametrize "my_custom_stability_string"
int stabilityStabledMillis

Quantos milissegundos o celular deve se manter no limiar correto para ser considerado estável. O padrão é 2000 ms
double stabilityThreshold

Limiar inferior entre estável/instável, em variação de m/s² entre as últimas duas coletas do sensor. O padrão é 0.5 m/s²

iOS

DocumentDetectorIosSettings constructor
double detectionThreshold

Limiar de aceitação do documento, em um valor de 0.0 a 1.0. O padrão é 0.95
bool verifyQuality

Flag que indica se deseja verificar a qualidade do documento capturado
double qualityThreshold

Limiar de aceitação da qualidade, entre 1.0 e 5.0. 1.8 é o recomendado para um futuro OCR
DocumentDetectorCustomizationIos customization

Customização visual do DocumentDetector
SensorSettingsIos sensorSettings

Configurações personalizadas dos sensores em iOS, null para desabilitar
DocumentDetectorCustomizationIos constructor
String colorHex

Cor tema do SDK. Por exemplo, caso deseje usar a cor preta, utilize "#000000"
String greenMaskImageName

Nome da imagem à substituir a máscara verde padrão. Lembre de adicionar a imagem em Assets Catalog Document no seu projeto do XCode
String whiteMaskImageName

Nome da imagem à substituir a máscara branca padrão. Lembre de adicionar a imagem em Assets Catalog Document no seu projeto do XCode
String redMaskImageName

Nome da imagem à substituir a máscara vermelha padrão. Lembre de adicionar a imagem em Assets Catalog Document no seu projeto do XCode
String closeImageName

Nome da imagem à substituir o botão de fechar o SDK. Lembre de adicionar a imagem em Assets Catalog Document no seu projeto do XCode
bool showStepLabel

Flag que indica se deseja mostrar o label do passo atual
bool showStatusLabel

Flag que indica se deseja mostrar o label do status atual
SensorSettingsIos constructor
SensorLuminositySettingsIos sensorLuminosity

Configurações do sensor de luminosidade à ser aplicado em todos os passos do SDK
SensorOrientationSettingsIos sensorOrientation

Configurações do sensor de orientação à ser aplicado em todos os passos do SDK
SensorStabilitySettingsIos sensorStability

Configurações do sensor de estabilidade à ser aplicado em todos os passos do SDK
SensorLuminositySettingsIos constructor
String message

String à ser mostrada quando o ambiente estiver escuro
double luminosityThreshold

Limiar inferior entre luminosidade aceitável/não aceitável. O padrão é -3
SensorOrientationSettingsAndroid constructor
String message

String à ser mostrada quando o celular não estiver na horizontal
double orientationThreshold

Limiar inferior entre orientação correta/incorreta. O padrão é 0.3
SensorStabilitySettingsAndroid constructor
String message

String à ser mostrada quando o celular não estiver estável
double stabilityThreshold

Limiar inferior entre estável/instável, em variação de m/s² entre as últimas duas coletas do sensor. O padrão é 0.3 m/s²

Coletando o resultado

O objeto de retorno do DocumentDetector terá o atributo result que contém uma string SUCCESS, FAILURE ou CLOSED. O retorno terá o padrão DocumentDetectorSuccess, DocumentDetectorFailure e DocumentDetectorClosed, respectivamente, para cada um dos casos.

DocumentDetectorSuccess

Campo Observação
List<Capture> captures

Lista de capturas dos documentos
Terá o mesmo tamanho e a mesma ordem do parâmetro List<DocumentDetectorStep>
String type

Tipo de documento detectado pelo próprio SDK, util para a integração com nossa rota externa de OCR. Por exemplo, se você capturar DocumentType.CNH_FRONT e DocumentType.CNH_BACK, este parâmetro será "cnh"
Será nulo se o SDK não conseguir verificar o tipo do documento ou se a detecção for desabilitada
String trackingId

Identificador dessa execução em nossos servidores. Se possível, salve este campo e mande-o junto para nossa API. Assim, teremos mais dados de como o usuário se comportou durante a execução
Será nulo se o usuário configurar useAnalytics = false ou as chamadas de analytics não funcionarem
Capture
Campo Observação
String imagePath

Endereço completo da imagem no dispositivo
-
String imageUrl

URL da imagem armazenada temporariamente nos servidores da CAF
Será nulo se o SDK não conseguir verificar a qualidade ou se a mesma estiver desabilitada
String label

Label de detecção da captura. Por exemplo, se a captura for referente a um DocumentType.RG_FRONT, este label pode ser "rg_front" ou "rg_new_front", que se refere aos novos modelos de RG
Será nulo se a foto for coletada em um estágio onde a detecção está desativada
double quality

Qualidade da foto do documento, em um valor de 1.0 a 5.0
Será nulo se a foto for coletada em um estágio onde a verificação de qualidade está desativada

DocumentDtetectorFailure

Campo
String message

Mensagem amigável explicando o motivo da falha do SDK
String type

Tipo de falha que encerrou o SDK

Os tipos de falha existentes são:

  • InvalidTokenReason: quando o token informado é inválido. Não deve ocorrer em um ambiente de produção;
  • PermissionReason: quando alguma permissão obrigatória não foi concedida pelo usuário. Só ocorrerá em um ambiente de produção se o seu app não solicitar ao seu usuário ou o mesmo desabilitar manualmente antes de iniciar;
  • NetworkReason: falha de conexão com o servidor. Ocorrerá em produção se o dispositivo do usuário estiver sem internet;
  • ServerReason: falha em alguma requisição com nossos servidores. Ocorrerá em produção somente no caso de uma falha nossa;
  • SecurityReason: quando o dispositivo não é seguro para executar o SDK. Se esta falha ocorrer, avise-nos;
  • StorageReason: quando o dispositivo não possui espaço suficiente para a captura de alguma foto. Pode ocorrer em produção;
  • LibraryReason: quando alguma falha interna impossibilitou a execução do SDK. Pode ocorrer devico à erros de configuração do projeto, não deve ocorrer em produção;

DocumentDetectorClosed

Objeto vazio indicando fechamento da tela de captura pelo usuário.

Readme

Keywords

Package Sidebar

Install

npm i document-detector-ionic-nosentry

Weekly Downloads

3

Version

1.0.0

License

MIT

Unpacked Size

335 kB

Total Files

185

Last publish

Collaborators

  • viniciusgandrade1