Comenzando
-
Instalar el paquete
Ventana de terminal npm i @Capgo/Capacitor-crispVentana de terminal pnpm add @Capgo/Capacitor-crispVentana de terminal yarn add @Capgo/Capacitor-crispVentana de terminal bun add @Capgo/Capacitor-crisp -
Sincronizar con proyectos nativos
Ventana de terminal npx cap syncVentana de terminal pnpm cap syncVentana de terminal yarn cap syncVentana de terminal bunx cap sync -
Obtener tu ID de sitio web de Crisp
- Regístrate en crisp.chat
- Crea un sitio web/proyecto
- Encuentra tu ID de sitio web en Configuración > Instrucciones de configuración
Uso básico
Section titled “Uso básico”Importa el Plugin y configúralo con tu ID de sitio web:
import { CapacitorCrisp } from '@capgo/capacitor-crisp';
// Configurar Crisp con tu ID de sitio webconst configureCrisp = async () => { await CapacitorCrisp.configure({ websiteID: 'YOUR_WEBSITE_ID' });};
// Abrir el chatconst openChat = async () => { await CapacitorCrisp.openMessenger();};
// Establecer información del usuarioconst setUserInfo = async () => { await CapacitorCrisp.setUser({ email: 'user@example.com', nickname: 'John Doe', phone: '+1234567890', avatar: 'https://example.com/avatar.jpg' });};
// Restablecer sesión de usuario (cerrar sesión)const logout = async () => { await CapacitorCrisp.resetChatSession();};Referencia de API
Section titled “Referencia de API”Configurar(Opciones)
Section titled “Configurar(Opciones)”Configura Crisp con tu ID de sitio web y ajustes opcionales.
interface ConfigureOptions { websiteID: string; locale?: string; // ej., 'en', 'fr', 'es' tokenID?: string; // Para sesiones autenticadas}
await CapacitorCrisp.configure({ websiteID: 'YOUR_WEBSITE_ID', locale: 'en'});openMessenger()
Section titled “openMessenger()”Abre la interfaz de chat de Crisp.
await CapacitorCrisp.openMessenger();setUser(Opciones)
Section titled “setUser(Opciones)”Establece la información del usuario para la sesión de chat.
interface UserOptions { email?: string; nickname?: string; phone?: string; avatar?: string;}
await CapacitorCrisp.setUser({ email: 'user@example.com', nickname: 'John Doe'});setUserCompany(Opciones)
Section titled “setUserCompany(Opciones)”Establece información de la empresa para usuarios empresariales.
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(Opciones)
Section titled “pushEvent(Opciones)”Envía eventos personalizados para rastrear acciones del usuario.
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)”Establece un segmento para categorizar la sesión de chat.
await CapacitorCrisp.setSessionSegment('premium_customer');resetChatSession()
Section titled “resetChatSession()”Restablece la sesión de chat actual (útil para cerrar sesión).
await CapacitorCrisp.resetChatSession();Funciones avanzadas
Section titled “Funciones avanzadas”Datos personalizados del usuario
Section titled “Datos personalizados del usuario”// Establecer múltiples campos de datos personalizadosawait CapacitorCrisp.setSessionData({ key: 'plan', value: 'premium'});
await CapacitorCrisp.setSessionData({ key: 'signup_date', value: '2024-01-15'});Mensaje predeterminado
Section titled “Mensaje predeterminado”Establece un mensaje prellenado en la entrada del chat:
await CapacitorCrisp.setMessageText( "Hola, necesito ayuda con mi pedido #12345");Disponibilidad del chat
Section titled “Disponibilidad del chat”Controla cuándo el widget de chat está disponible:
// Ocultar chat temporalmenteawait CapacitorCrisp.setTokenID('user_token_12345');Ejemplo completo
Section titled “Ejemplo completo”import { CapacitorCrisp } from '@capgo/capacitor-crisp';
export class ChatService { async initialize() { // Configurar Crisp await CapacitorCrisp.configure({ websiteID: 'YOUR_WEBSITE_ID', locale: 'en' }); }
async loginUser(user: any) { // Establecer información del usuario await CapacitorCrisp.setUser({ email: user.email, nickname: user.name, phone: user.phone, avatar: user.avatarUrl });
// Establecer datos personalizados await CapacitorCrisp.setSessionData({ key: 'user_id', value: user.id });
await CapacitorCrisp.setSessionData({ key: 'account_type', value: user.accountType });
// Establecer segmento if (user.isPremium) { await CapacitorCrisp.setSessionSegment('premium'); }
// Rastrear evento de inicio de sesión await CapacitorCrisp.pushEvent({ name: 'user_login', color: 'blue', data: { method: 'email' } }); }
async openSupport(context?: string) { if (context) { await CapacitorCrisp.setMessageText( `Necesito ayuda con: ${context}` ); }
await CapacitorCrisp.openMessenger(); }
async logout() { await CapacitorCrisp.resetChatSession(); }}Estilo y personalización
Section titled “Estilo y personalización”Crisp se adapta automáticamente al tema de tu aplicación, pero puedes personalizarlo aún más a través del panel de Crisp:
- Ve a tu panel de Crisp
- Navega a Configuración > Configuración del sitio web > Configuración de Chatbox y Email
- Personaliza colores, posición y comportamiento
Mejores prácticas
Section titled “Mejores prácticas”-
Inicializar temprano Configura Crisp durante la inicialización de la aplicación para disponibilidad inmediata:
import { App } from '@capacitor/app';App.addListener('appStateChange', async ({ isActive }) => {if (isActive) {await CapacitorCrisp.configure({websiteID: 'YOUR_WEBSITE_ID'});}}); -
Establecer contexto del usuario Siempre proporciona información del usuario cuando esté disponible para un mejor soporte:
if (user.isAuthenticated) {await CapacitorCrisp.setUser({email: user.email,nickname: user.name});} -
Rastrear eventos importantes Usa eventos para proporcionar contexto a los agentes de soporte:
await CapacitorCrisp.pushEvent({name: 'error_occurred',color: 'red',data: {error: error.message,screen: 'checkout'}}); -
Manejar el cierre de sesión correctamente Siempre restablece la sesión cuando los usuarios cierran sesión:
async logout() {await CapacitorCrisp.resetChatSession();// Tu otra lógica de cierre de sesión}
Notas de plataforma
Section titled “Notas de plataforma”- Requiere iOS 10.0+
- Usa SDK nativo de Crisp para iOS
- Soporta notificaciones push (configurar en el panel de Crisp)
Android
Section titled “Android”- Requiere Android 5.0 (API 21)+
- Usa SDK nativo de Crisp para Android
- Cumple con Material Design
- Recurre al SDK JavaScript de Crisp
- Paridad completa de funciones con plataformas nativas