Erste Schritte
-
Paket installieren
Terminal-Fenster npm i @capgo/capacitor-crispTerminal-Fenster pnpm add @capgo/capacitor-crispTerminal-Fenster yarn add @capgo/capacitor-crispTerminal-Fenster bun add @capgo/capacitor-crisp -
Mit nativen Projekten synchronisieren
Terminal-Fenster npx cap syncTerminal-Fenster pnpm cap syncTerminal-Fenster yarn cap syncTerminal-Fenster bunx cap sync -
Ihre Crisp Website-ID abrufen
- Melden Sie sich bei crisp.chat an
- Erstellen Sie eine Website/ein Projekt
- Finden Sie Ihre Website-ID unter Einstellungen > Setup-Anleitung
Grundlegende Verwendung
Section titled “Grundlegende Verwendung”Importieren Sie das Plugin und konfigurieren Sie es mit Ihrer Website-ID:
import { CapacitorCrisp } from '@capgo/capacitor-crisp';
// Crisp mit Ihrer Website-ID konfigurierenconst configureCrisp = async () => { await CapacitorCrisp.configure({ websiteID: 'YOUR_WEBSITE_ID' });};
// Den Chat öffnenconst openChat = async () => { await CapacitorCrisp.openMessenger();};
// Benutzerinformationen festlegenconst setUserInfo = async () => { await CapacitorCrisp.setUser({ email: 'user@example.com', nickname: 'John Doe', phone: '+1234567890', avatar: 'https://example.com/avatar.jpg' });};
// Benutzersitzung zurücksetzen (Abmelden)const logout = async () => { await CapacitorCrisp.resetChatSession();};API-Referenz
Section titled “API-Referenz”configure(options)
Section titled “configure(options)”Konfigurieren Sie Crisp mit Ihrer Website-ID und optionalen Einstellungen.
interface ConfigureOptions { websiteID: string; locale?: string; // z.B., 'en', 'fr', 'es' tokenID?: string; // Für authentifizierte Sitzungen}
await CapacitorCrisp.configure({ websiteID: 'YOUR_WEBSITE_ID', locale: 'de'});openMessenger()
Section titled “openMessenger()”Öffnet die Crisp-Chat-Oberfläche.
await CapacitorCrisp.openMessenger();setUser(options)
Section titled “setUser(options)”Setzt Benutzerinformationen für die Chat-Sitzung.
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)”Setzt Firmeninformationen für Geschäftskunden.
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)”Senden Sie benutzerdefinierte Ereignisse, um Benutzeraktionen zu verfolgen.
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)”Setzen Sie ein Segment, um die Chat-Sitzung zu kategorisieren.
await CapacitorCrisp.setSessionSegment('premium_customer');resetChatSession()
Section titled “resetChatSession()”Setzen Sie die aktuelle Chat-Sitzung zurück (nützlich für Abmeldung).
await CapacitorCrisp.resetChatSession();Erweiterte Funktionen
Section titled “Erweiterte Funktionen”Benutzerdefinierte Benutzerdaten
Section titled “Benutzerdefinierte Benutzerdaten”// Mehrere benutzerdefinierte Datenfelder festlegenawait CapacitorCrisp.setSessionData({ key: 'plan', value: 'premium'});
await CapacitorCrisp.setSessionData({ key: 'signup_date', value: '2024-01-15'});Nachrichtenvorlage
Section titled “Nachrichtenvorlage”Setzen Sie eine vorgefüllte Nachricht in das Chat-Eingabefeld:
await CapacitorCrisp.setMessageText( "Hallo, ich benötige Hilfe bei meiner Bestellung #12345");Chat-Verfügbarkeit
Section titled “Chat-Verfügbarkeit”Steuern Sie, wann das Chat-Widget verfügbar ist:
// Chat vorübergehend ausblendenawait CapacitorCrisp.setTokenID('user_token_12345');Vollständiges Beispiel
Section titled “Vollständiges Beispiel”import { CapacitorCrisp } from '@capgo/capacitor-crisp';
export class ChatService { async initialize() { // Crisp konfigurieren await CapacitorCrisp.configure({ websiteID: 'YOUR_WEBSITE_ID', locale: 'de' }); }
async loginUser(user: any) { // Benutzerinformationen festlegen await CapacitorCrisp.setUser({ email: user.email, nickname: user.name, phone: user.phone, avatar: user.avatarUrl });
// Benutzerdefinierte Daten festlegen await CapacitorCrisp.setSessionData({ key: 'user_id', value: user.id });
await CapacitorCrisp.setSessionData({ key: 'account_type', value: user.accountType });
// Segment festlegen if (user.isPremium) { await CapacitorCrisp.setSessionSegment('premium'); }
// Login-Ereignis verfolgen await CapacitorCrisp.pushEvent({ name: 'user_login', color: 'blue', data: { method: 'email' } }); }
async openSupport(context?: string) { if (context) { await CapacitorCrisp.setMessageText( `Ich benötige Hilfe bei: ${context}` ); }
await CapacitorCrisp.openMessenger(); }
async logout() { await CapacitorCrisp.resetChatSession(); }}Styling und Anpassung
Section titled “Styling und Anpassung”Crisp passt sich automatisch dem Theme Ihrer App an, aber Sie können es über das Crisp-Dashboard weiter anpassen:
- Gehen Sie zu Ihrem Crisp-Dashboard
- Navigieren Sie zu Einstellungen > Website-Einstellungen > Chatbox & E-Mail-Einstellungen
- Passen Sie Farben, Position und Verhalten an
Best Practices
Section titled “Best Practices”-
Früh initialisieren Konfigurieren Sie Crisp während der App-Initialisierung für sofortige Verfügbarkeit:
import { App } from '@capacitor/app';App.addListener('appStateChange', async ({ isActive }) => {if (isActive) {await CapacitorCrisp.configure({websiteID: 'YOUR_WEBSITE_ID'});}}); -
Benutzerkontext festlegen Geben Sie immer Benutzerinformationen an, wenn verfügbar, für besseren Support:
if (user.isAuthenticated) {await CapacitorCrisp.setUser({email: user.email,nickname: user.name});} -
Wichtige Ereignisse verfolgen Verwenden Sie Ereignisse, um Support-Agenten Kontext zu bieten:
await CapacitorCrisp.pushEvent({name: 'error_occurred',color: 'red',data: {error: error.message,screen: 'checkout'}}); -
Abmeldung ordnungsgemäß behandeln Setzen Sie die Sitzung immer zurück, wenn Benutzer sich abmelden:
async logout() {await CapacitorCrisp.resetChatSession();// Ihre andere Abmeldelogik}
Plattform-Hinweise
Section titled “Plattform-Hinweise”- Erfordert iOS 10.0+
- Verwendet natives Crisp iOS SDK
- Unterstützt Push-Benachrichtigungen (im Crisp-Dashboard konfigurieren)
Android
Section titled “Android”- Erfordert Android 5.0 (API 21)+
- Verwendet natives Crisp Android SDK
- Material Design-konform
- Verwendet als Fallback Crisp JavaScript SDK
- Vollständige Feature-Parität mit nativen Plattformen