Comment installer un chat en direct sur une application React Native ?

Sojan

Sojan

Dernière mise à jour le Jul 31, 2026

Si vous avez une application React Native, vous pouvez ajouter le widget de chat en direct Chatwoot et discuter avec vos visiteurs en temps réel. Cela peut être fait en 3 étapes simples grâce au plugin Chatwoot.

Étape 1. Créez une boîte de réception de site web dans Chatwoot​

Veuillez consulter ce guide pour des instructions détaillées sur la configuration d'une boîte de réception de site web dans Chatwoot.

Étape 2. Ajoutez le plugin à votre projet

Ajoutez l’un des plugins suivants à votre projet.

yarn add @chatwoot/react-native-widget

ou

npm install --save @chatwoot/react-native-widget --save

Cette librairie dépend de react-native-webview et async-storage. Veuillez suivre les instructions fournies dans la documentation.

Installation iOS

Si vous utilisez une version de React Native supérieure à 60.0, c'est relativement simple.

cd ios && pod install

Étape 3. Utilisez-le comme ceci

Remplacez websiteToken et baseUrl par les valeurs appropriées.

import React, { useState } from 'react';
import { StyleSheet, View, SafeAreaView, TouchableOpacity, Text } from 'react-native';
import ChatWootWidget from '@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: '',
  };
  const customAttributes = { accountId: 1, pricingPlan: 'paid', status: 'active' };
  const websiteToken = 'WEBSITE_TOKEN';
  const baseUrl = 'CHATWOOT_INSTALLATION_URL';
  const locale = 'en';

  return (
    <SafeAreaView style={styles.container}>
      <View>
        <TouchableOpacity style={styles.button} onPress={() => toggleWidget(true)}>
          <Text style={styles.buttonText}>Ouvrir le widget</Text>
        </TouchableOpacity>
      </View>
      {
        showWidget&&
          <ChatWootWidget
            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',
    borderRadius: 8,
    borderWidth: 1,
    borderColor: '#fff',
    justifyContent: 'center',
  },
  buttonText: {
    color: '#fff',
    textAlign: 'center',
    paddingLeft: 10,
    fontWeight: '600',
    fontSize: 16,
    paddingRight: 10,
  },
});

export default App;

Et... c'est tout. Consultez l'exemple complet ici.