Premiers pas
-
Installer le package
Fenêtre de terminal npm i @capgo/capacitor-crispFenêtre de terminal pnpm add @capgo/capacitor-crispFenêtre de terminal yarn add @capgo/capacitor-crispFenêtre de terminal bun add @capgo/capacitor-crisp -
Synchroniser avec les projets natifs
Fenêtre de terminal npx cap syncFenêtre de terminal pnpm cap syncFenêtre de terminal yarn cap syncFenêtre de terminal bunx cap sync -
Obtenir votre ID de site web Crisp
- Inscrivez-vous sur crisp.chat
- Créez un site web/projet
- Trouvez votre ID de site web dans Paramètres > Instructions de configuration
Utilisation de base
Section titled “Utilisation de base”Importez le plugin et configurez-le avec votre ID de site web :
import { CapacitorCrisp } from '@capgo/capacitor-crisp';
// Configurer Crisp avec votre ID de site webconst configureCrisp = async () => { await CapacitorCrisp.configure({ websiteID: 'YOUR_WEBSITE_ID' });};
// Ouvrir le chatconst openChat = async () => { await CapacitorCrisp.openMessenger();};
// Définir les informations utilisateurconst setUserInfo = async () => { await CapacitorCrisp.setUser({ email: 'user@example.com', nickname: 'John Doe', phone: '+1234567890', avatar: 'https://example.com/avatar.jpg' });};
// Réinitialiser la session utilisateur (déconnexion)const logout = async () => { await CapacitorCrisp.resetChatSession();};Référence API
Section titled “Référence API”configure(options)
Section titled “configure(options)”Configurez Crisp avec votre ID de site web et paramètres optionnels.
interface ConfigureOptions { websiteID: string; locale?: string; // ex : 'en', 'fr', 'es' tokenID?: string; // Pour les sessions authentifiées}
await CapacitorCrisp.configure({ websiteID: 'YOUR_WEBSITE_ID', locale: 'en'});openMessenger()
Section titled “openMessenger()”Ouvre l’interface de chat Crisp.
await CapacitorCrisp.openMessenger();setUser(options)
Section titled “setUser(options)”Définit les informations utilisateur pour la session de chat.
interface UserOptions { email?: string; nickname?: string; phone?: string; avatar?: string;}
await CapacitorCrisp.setUser({ email: 'user@example.com', nickname: 'John Doe'});setUserCompany(options)
Section titled “setUserCompany(options)”Définit les informations de l’entreprise pour les utilisateurs professionnels.
interface CompanyOptions { name: string; url?: string; description?: string; employment?: { title?: string; role?: string; }; geolocation?: { city?: string; country?: string; };}
await CapacitorCrisp.setUserCompany({ name: 'Acme Corp', url: 'https://acme.com', employment: { title: 'CEO', role: 'Leadership' }});pushEvent(options)
Section titled “pushEvent(options)”Envoyez des événements personnalisés pour suivre les actions des utilisateurs.
interface EventOptions { name: string; color?: 'red' | 'orange' | 'yellow' | 'green' | 'blue' | 'purple' | 'pink' | 'brown' | 'grey' | 'black'; data?: { [key: string]: any };}
await CapacitorCrisp.pushEvent({ name: 'checkout_completed', color: 'green', data: { price: 99.99, currency: 'USD' }});setSessionSegment(segment)
Section titled “setSessionSegment(segment)”Définissez un segment pour catégoriser la session de chat.
await CapacitorCrisp.setSessionSegment('premium_customer');resetChatSession()
Section titled “resetChatSession()”Réinitialisez la session de chat actuelle (utile pour la déconnexion).
await CapacitorCrisp.resetChatSession();Fonctionnalités avancées
Section titled “Fonctionnalités avancées”Données utilisateur personnalisées
Section titled “Données utilisateur personnalisées”// Définir plusieurs champs de données personnaliséesawait CapacitorCrisp.setSessionData({ key: 'plan', value: 'premium'});
await CapacitorCrisp.setSessionData({ key: 'signup_date', value: '2024-01-15'});Message prédéfini
Section titled “Message prédéfini”Définissez un message prérempli dans le champ de saisie du chat :
await CapacitorCrisp.setMessageText( "Bonjour, j'ai besoin d'aide pour ma commande #12345");Disponibilité du chat
Section titled “Disponibilité du chat”Contrôlez quand le widget de chat est disponible :
// Masquer temporairement le chatawait CapacitorCrisp.setTokenID('user_token_12345');Exemple complet
Section titled “Exemple complet”import { CapacitorCrisp } from '@capgo/capacitor-crisp';
export class ChatService { async initialize() { // Configurer Crisp await CapacitorCrisp.configure({ websiteID: 'YOUR_WEBSITE_ID', locale: 'en' }); }
async loginUser(user: any) { // Définir les informations utilisateur await CapacitorCrisp.setUser({ email: user.email, nickname: user.name, phone: user.phone, avatar: user.avatarUrl });
// Définir des données personnalisées await CapacitorCrisp.setSessionData({ key: 'user_id', value: user.id });
await CapacitorCrisp.setSessionData({ key: 'account_type', value: user.accountType });
// Définir le segment if (user.isPremium) { await CapacitorCrisp.setSessionSegment('premium'); }
// Suivre l'événement de connexion await CapacitorCrisp.pushEvent({ name: 'user_login', color: 'blue', data: { method: 'email' } }); }
async openSupport(context?: string) { if (context) { await CapacitorCrisp.setMessageText( `J'ai besoin d'aide pour : ${context}` ); }
await CapacitorCrisp.openMessenger(); }
async logout() { await CapacitorCrisp.resetChatSession(); }}Style et personnalisation
Section titled “Style et personnalisation”Crisp s’adapte automatiquement au thème de votre application, mais vous pouvez le personnaliser davantage via le tableau de bord Crisp :
- Accédez à votre tableau de bord Crisp
- Naviguez vers Paramètres > Paramètres du site web > Paramètres de la boîte de dialogue et des e-mails
- Personnalisez les couleurs, la position et le comportement
Bonnes pratiques
Section titled “Bonnes pratiques”-
Initialiser tôt Configurez Crisp lors de l’initialisation de l’application pour une disponibilité immédiate :
import { App } from '@capacitor/app';App.addListener('appStateChange', async ({ isActive }) => {if (isActive) {await CapacitorCrisp.configure({websiteID: 'YOUR_WEBSITE_ID'});}}); -
Définir le contexte utilisateur Fournissez toujours les informations utilisateur lorsqu’elles sont disponibles pour un meilleur support :
if (user.isAuthenticated) {await CapacitorCrisp.setUser({email: user.email,nickname: user.name});} -
Suivre les événements importants Utilisez les événements pour fournir du contexte aux agents de support :
await CapacitorCrisp.pushEvent({name: 'error_occurred',color: 'red',data: {error: error.message,screen: 'checkout'}}); -
Gérer correctement la déconnexion Réinitialisez toujours la session lorsque les utilisateurs se déconnectent :
async logout() {await CapacitorCrisp.resetChatSession();// Votre autre logique de déconnexion}
Notes sur les plateformes
Section titled “Notes sur les plateformes”- Nécessite iOS 10.0+
- Utilise le SDK natif Crisp iOS
- Prend en charge les notifications push (à configurer dans le tableau de bord Crisp)
Android
Section titled “Android”- Nécessite Android 5.0 (API 21)+
- Utilise le SDK natif Crisp Android
- Conforme au Material Design
- Utilise le SDK JavaScript Crisp en repli
- Parité complète des fonctionnalités avec les plateformes natives