1.3.3 • Published 10 months ago

@conectahub/sdk-connecthub-kyc-rn v1.3.3

Weekly downloads
-
License
ISC
Repository
-
Last release
10 months ago

šŸš€ ConnectaHub KYC

Biblioteca React Native para integração com o ConnectaHub KYC, permitindo a verificação de identidade via WebView.

šŸ“„ Instalação

Antes de instalar, certifique-se de que seu projeto React Native jĆ” estĆ” configurado.

šŸ”¹ Instalar a biblioteca

Se estiver usando npm:

npm install @conectahub/sdk-connecthub-kyc-rn 

Se estiver usando yarn:

yarn add connectahub-kyc
šŸ›  Configuração
Certifique-se de que o react-native-webview estĆ” instalado:

A biblioteca depende do react-native-webview. Caso ainda não tenha instalado, execute:

npm install react-native-webview

Ou com Yarn:

yarn add react-native-webview
Configurar permissão para WebView (Android):

šŸ“ŒConfiguração para Android

Abra o arquivo android/app/src/main/AndroidManifest.xml e adicione as seguintes permissƵes dentro da tag <manifest>:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA"/>

Para garantir o funcionamento correto da câmera no Android, adicione a seguinte configuração dentro da tag 
<application>:

 
<provider
    android:name="androidx.core.content.FileProvider"
    android:authorities="${applicationId}.fileprovider"
    android:grantUriPermissions="true"
    android:exported="false">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/provider_paths"/>
</provider>
Agora, crie o arquivo android/app/src/main/res/xml/provider_paths.xml e adicione:

 
<?xml version="1.0" encoding="utf-8"?>
<paths>
    <external-files-path name="camera_images" path="Pictures"/>
</paths>
šŸ“Œ Configuração para iOS
No arquivo ios/Info.plist, adicione:

 
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

<key>NSCameraUsageDescription</key>
<string>Este aplicativo precisa acessar a câmera para capturar fotos e realizar a verificação de identidade.</string>

<key>NSMicrophoneUsageDescription</key>
<string>Este aplicativo precisa acessar o microfone para capturar vídeos durante a verificação.</string>
Isso garantirÔ que o aplicativo tenha permissão para acessar a câmera e o microfone no iOS.


šŸ“Œ Como Usar
Aqui estÔ um exemplo de implementação completa no seu aplicativo React Native:

import React, { useState } from "react";
import { View, StyleSheet, Text, Button, Alert, ActivityIndicator } from "react-native";
import { ConnectaHubKYC, Transaction } from "connectahub-kyc";

export default function App() {
  const [isProcessing, setIsProcessing] = useState(false);
  
  // Token de autenticação obtido do backend
  const authToken = "SEU_TOKEN_AQUI";

  // Dados da transação para o KYC
  const transactionData: Transaction = {
    name: "João Silva",
    document_number: "123.456.789-00",
    birthdate: "1990-01-01",
    email: "joao@email.com",
    country_code: "BR",
    phone: "5592999999999"
  };

  // Componente de carregamento personalizado
  const CustomLoadingComponent = () => (
    <View style={styles.loadingContainer}>
      <ActivityIndicator size="large" color="#0000ff" />
      <Text style={styles.loadingText}>Preparando verificação de identidade...</Text>
      <Text style={styles.loadingSubtext}>Por favor, aguarde alguns instantes</Text>
    </View>
  );

  return (
    <View style={styles.container}>
      {!isProcessing ? (
        <View style={styles.buttonContainer}>
          <Text style={styles.title}>Verificação KYC</Text>
          <Text style={styles.description}>
            Prepare seu documento de identidade e inicie o processo de verificação.
          </Text>
          <Button title="Iniciar verificação" onPress={() => setIsProcessing(true)} />
        </View>
      ) : (
        <ConnectaHubKYC
          transaction={transactionData}
          token={authToken} // Passando o token de autenticação
          customLoadingComponent={CustomLoadingComponent}
          onTransactionCreated={(id, url) => {
            console.log(`Transação criada: ${id}`);
            console.log(`URL do iframe: ${url}`);
          }}
          onError={(error) => {
            Alert.alert("Erro", error.message, [{ text: "OK", onPress: () => setIsProcessing(false) }]);
          }}
        />
      )}
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: "white"
  },
  buttonContainer: {
    flex: 1,
    justifyContent: "center",
    padding: 20
  },
  title: {
    fontSize: 24,
    fontWeight: "bold",
    textAlign: "center",
    marginBottom: 16
  },
  description: {
    fontSize: 16,
    textAlign: "center",
    marginBottom: 32
  },
  loadingContainer: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
    backgroundColor: "#f5f5f5",
    padding: 20
  },
  loadingText: {
    fontSize: 18,
    marginTop: 16,
    textAlign: "center",
    fontWeight: "bold"
  },
  loadingSubtext: {
    fontSize: 14,
    marginTop: 8,
    color: "#666",
    textAlign: "center"
  }
});
1.3.3

10 months ago

1.3.2

10 months ago

1.3.1

10 months ago

1.3.0

10 months ago

1.2.9

10 months ago

1.2.8

10 months ago

1.2.7

10 months ago

1.2.6

10 months ago

1.2.5

10 months ago

1.2.4

10 months ago

1.2.3

10 months ago

1.2.2

10 months ago

1.2.1

10 months ago

1.2.0

10 months ago

1.1.9

10 months ago

1.1.8

10 months ago

1.1.7

10 months ago

1.1.6

10 months ago

1.1.5

10 months ago

1.1.4

10 months ago

1.1.3

10 months ago

1.1.2

10 months ago

1.1.1

10 months ago

1.1.0

10 months ago

1.0.9

10 months ago

1.0.7

10 months ago

1.0.6

10 months ago

1.0.5

10 months ago

1.0.4

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago