Como instalar o chat ao vivo em um aplicativo React Native?
Última atualização em 10 de Abr, 2024
Se você tem um aplicativo React Native, você pode adicionar o widget de chat ao vivo do Yuzap e conversar com seus visitantes em tempo real. Isso pode ser feito em 3 passos simples usando o plugin Yuzap.
Passo 1. Crie uma caixa de entrada de website no Yuzap
Por favor, consulte este guia para instruções detalhadas sobre como configurar uma caixa de entrada de website no Yuzap.
Passo 2. Adicione o plugin ao seu projeto
Adicione um dos seguintes plugins ao seu projeto (Nota: O nome exato do plugin @yuzap/react-native-widget
pode precisar ser confirmado/criado para Yuzap).
yarn add @yuzap/react-native-widget
ou
npm install --save @yuzap/react-native-widget --save
Esta biblioteca depende de react-native-webview
e async-storage
. Por favor, siga as instruções fornecidas nas documentações dessas bibliotecas.
Instalação iOS
Se você estiver usando versões do React Native > 60.0, é relativamente direto.
cd ios && pod install
Passo 3. Use-o assim
Substitua websiteToken
e baseUrl
pelos valores apropriados.
import React, { useState } from 'react';
import { StyleSheet, View, SafeAreaView, TouchableOpacity, Text } from 'react-native';
import YuzapWidget from '@yuzap/react-native-widget'; // Adaptado de ChatwootWidget e @chatwoot/react-native-widget
const App = () => {
const [showWidget, toggleWidget] = useState(false);
const user = {
identifier: 'john@gmail.com',
name: 'John Samuel',
avatar_url: '',
email: 'john@gmail.com',
identifier_hash: '', // Gerado a partir do HMAC SHA256 do identifier usando a identity_validation_token da caixa de entrada
};
const customAttributes = { accountId: 1, pricingPlan: 'paid', status: 'active' };
const websiteToken = 'TOKEN_DO_WEBSITE_YUZAP'; // Substitua pelo seu token do website Yuzap
const baseUrl = 'URL_INSTALACAO_YUZAP'; // Substitua pela URL base da sua instalação Yuzap (ex: https://app.yuzap.com)
const locale = 'pt-BR'; // Define o idioma do widget
return (
<SafeAreaView style={styles.container}>
<View>
<TouchableOpacity style={styles.button} onPress={() => toggleWidget(true)}>
<Text style={styles.buttonText}>Abrir Chat</Text>
</TouchableOpacity>
</View>
{showWidget && (
<YuzapWidget
websiteToken={websiteToken}
locale={locale}
baseUrl={baseUrl}
closeModal={() => toggleWidget(false)}
isModalVisible={showWidget}
user={user}
customAttributes={customAttributes}
/>
)}
</SafeAreaView>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
button: {
height: 48,
marginTop: 32,
paddingTop: 8,
paddingBottom: 8,
backgroundColor: '#1F93FF', // Cor de exemplo
borderRadius: 8,
borderWidth: 1,
borderColor: '#fff',
justifyContent: 'center',
},
buttonText: {
color: '#fff',
textAlign: 'center',
paddingLeft: 10,
paddingRight: 10,
fontSize: 16,
fontWeight: '600',
},
});
export default App;
E... pronto. Confira o exemplo completo aqui (Nota: A URL do exemplo completo precisa ser confirmada/criada).