Iniziare
-
Installa il pacchetto
Terminal window npm i @capgo/capacitor-crispTerminal window pnpm add @capgo/capacitor-crispTerminal window yarn add @capgo/capacitor-crispTerminal window bun add @capgo/capacitor-crisp -
Sincronizza con i progetti nativi
Terminal window npx cap syncTerminal window pnpm cap syncTerminal window yarn cap syncTerminal window bunx cap sync -
Ottieni il tuo Crisp Website ID
- Registrati su crisp.chat
- Crea un sito web/progetto
- Trova il tuo Website ID in Impostazioni > Istruzioni di Configurazione
Utilizzo Base
Section titled “Utilizzo Base”Importa il plugin e configuralo con il tuo Website ID:
import { CapacitorCrisp } from '@capgo/capacitor-crisp';
// Configura Crisp con il tuo website IDconst configureCrisp = async () => { await CapacitorCrisp.configure({ websiteID: 'YOUR_WEBSITE_ID' });};
// Apri la chatconst openChat = async () => { await CapacitorCrisp.openMessenger();};
// Imposta le informazioni utenteconst setUserInfo = async () => { await CapacitorCrisp.setUser({ email: 'user@example.com', nickname: 'John Doe', phone: '+1234567890', avatar: 'https://example.com/avatar.jpg' });};
// Reimposta la sessione utente (logout)const logout = async () => { await CapacitorCrisp.resetChatSession();};Riferimento API
Section titled “Riferimento API”configure(options)
Section titled “configure(options)”Configura Crisp con il tuo website ID e impostazioni opzionali.
interface ConfigureOptions { websiteID: string; locale?: string; // es., 'en', 'fr', 'es' tokenID?: string; // Per sessioni autenticate}
await CapacitorCrisp.configure({ websiteID: 'YOUR_WEBSITE_ID', locale: 'en'});openMessenger()
Section titled “openMessenger()”Apre l’interfaccia chat di Crisp.
await CapacitorCrisp.openMessenger();setUser(options)
Section titled “setUser(options)”Imposta le informazioni utente per la sessione 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)”Imposta le informazioni aziendali per gli utenti business.
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)”Invia eventi personalizzati per tracciare le azioni utente.
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)”Imposta un segmento per categorizzare la sessione chat.
await CapacitorCrisp.setSessionSegment('premium_customer');resetChatSession()
Section titled “resetChatSession()”Reimposta la sessione chat corrente (utile per il logout).
await CapacitorCrisp.resetChatSession();Funzionalità Avanzate
Section titled “Funzionalità Avanzate”Dati Utente Personalizzati
Section titled “Dati Utente Personalizzati”// Imposta più campi di dati personalizzatiawait CapacitorCrisp.setSessionData({ key: 'plan', value: 'premium'});
await CapacitorCrisp.setSessionData({ key: 'signup_date', value: '2024-01-15'});Messaggio Preimpostato
Section titled “Messaggio Preimpostato”Imposta un messaggio precompilato nel campo di input della chat:
await CapacitorCrisp.setMessageText( "Ciao, ho bisogno di aiuto con il mio ordine #12345");Disponibilità Chat
Section titled “Disponibilità Chat”Controlla quando il widget chat è disponibile:
// Nascondi temporaneamente la chatawait CapacitorCrisp.setTokenID('user_token_12345');Esempio Completo
Section titled “Esempio Completo”import { CapacitorCrisp } from '@capgo/capacitor-crisp';
export class ChatService { async initialize() { // Configura Crisp await CapacitorCrisp.configure({ websiteID: 'YOUR_WEBSITE_ID', locale: 'en' }); }
async loginUser(user: any) { // Imposta le informazioni utente await CapacitorCrisp.setUser({ email: user.email, nickname: user.name, phone: user.phone, avatar: user.avatarUrl });
// Imposta dati personalizzati await CapacitorCrisp.setSessionData({ key: 'user_id', value: user.id });
await CapacitorCrisp.setSessionData({ key: 'account_type', value: user.accountType });
// Imposta segmento if (user.isPremium) { await CapacitorCrisp.setSessionSegment('premium'); }
// Traccia evento di login await CapacitorCrisp.pushEvent({ name: 'user_login', color: 'blue', data: { method: 'email' } }); }
async openSupport(context?: string) { if (context) { await CapacitorCrisp.setMessageText( `Ho bisogno di aiuto con: ${context}` ); }
await CapacitorCrisp.openMessenger(); }
async logout() { await CapacitorCrisp.resetChatSession(); }}Stile e Personalizzazione
Section titled “Stile e Personalizzazione”Crisp si adatta automaticamente al tema della tua app, ma puoi personalizzarlo ulteriormente tramite la dashboard di Crisp:
- Vai alla tua dashboard Crisp
- Naviga in Impostazioni > Impostazioni Sito Web > Impostazioni Chatbox ed Email
- Personalizza colori, posizione e comportamento
Best Practice
Section titled “Best Practice”-
Inizializza presto Configura Crisp durante l’inizializzazione dell’app per una disponibilità immediata:
import { App } from '@capacitor/app';App.addListener('appStateChange', async ({ isActive }) => {if (isActive) {await CapacitorCrisp.configure({websiteID: 'YOUR_WEBSITE_ID'});}}); -
Imposta il contesto utente Fornisci sempre le informazioni utente quando disponibili per un supporto migliore:
if (user.isAuthenticated) {await CapacitorCrisp.setUser({email: user.email,nickname: user.name});} -
Traccia eventi importanti Usa gli eventi per fornire contesto agli agenti di supporto:
await CapacitorCrisp.pushEvent({name: 'error_occurred',color: 'red',data: {error: error.message,screen: 'checkout'}}); -
Gestisci correttamente il logout Reimposta sempre la sessione quando gli utenti si disconnettono:
async logout() {await CapacitorCrisp.resetChatSession();// La tua altra logica di logout}
Note sulle Piattaforme
Section titled “Note sulle Piattaforme”- Richiede iOS 10.0+
- Utilizza l’SDK nativo Crisp iOS
- Supporta notifiche push (configura nella dashboard Crisp)
Android
Section titled “Android”- Richiede Android 5.0 (API 21)+
- Utilizza l’SDK nativo Crisp Android
- Conforme a Material Design
- Ricade sull’SDK JavaScript di Crisp
- Parità completa delle funzionalità con le piattaforme native