1.3.3 ⢠Published 10 months ago
@conectahub/sdk-connecthub-kyc-rn v1.3.3
š 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