Saltar al contenido

Inicio

GitHub
  1. Instale el paquete

    Ventana de terminal
    bun add @capgo/capacitor-incoming-call-kit
  2. Sincronizar proyectos nativos

    Ventana de terminal
    bunx cap sync
  3. Elige la fuente de tu anillo Decide si el evento de llamada entrante proviene de tu backend, un SDK como Twilio o Stream, o un camino de empuje nativo como FCM o PushKit.

Este plugin solo controla la presentación de llamadas entrantes nativas. Tu aplicación sigue controlando el transporte, la autenticación y la sesión de medios real.

El patrón de producción común es:

  1. Su backend o llamada SDK emite un evento de anillo.
  2. Su aplicación llama showIncomingCall().
  3. El plugin presenta una IU de llamada entrante nativa.
  4. callAccepted le dice a su aplicación que se una a la habitación o sesión VoIP real.
  5. callDeclined, callEndedo callTimedOut le dice a su aplicación que limpie el estado remoto.
import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';
await IncomingCallKit.requestPermissions();
await IncomingCallKit.requestFullScreenIntentPermission();
await IncomingCallKit.addListener('callAccepted', async ({ call }) => {
console.log('Accepted', call.callId, call.extra);
// Start or join your real call session here.
});
await IncomingCallKit.addListener('callDeclined', ({ call }) => {
console.log('Declined', call.callId);
// Tell your backend or SDK that the user declined.
});
await IncomingCallKit.addListener('callTimedOut', ({ call }) => {
console.log('Timed out', call.callId);
// Clear ringing state in your backend or SDK.
});
await IncomingCallKit.showIncomingCall({
callId: 'call-42',
callerName: 'Ada Lovelace',
handle: '+39 555 010 020',
appName: 'Capgo Phone',
hasVideo: true,
timeoutMs: 45_000,
extra: {
roomId: 'room-42',
callerUserId: 'user_ada',
},
android: {
channelId: 'calls',
channelName: 'Incoming Calls',
showFullScreen: true,
},
ios: {
handleType: 'phoneNumber',
},
});
  • callId: identificador establecido reutilizado más tarde con endCall()
  • timeoutMstiempo de espera de mejores esfuerzos sin respuesta
  • extraJSON arbitrario devuelto en payloads de oyente
  • android.channelId y android.channelNameajuste de canal de notificación Android
  • android.showFullScreenpide la actividad de llamada de pantalla completa de Android
  • ios.handleTypeseleccione generic, phoneNumber, o emailAddress para CallKit
const { calls } = await IncomingCallKit.getActiveCalls();
await IncomingCallKit.endCall({
callId: 'call-42',
reason: 'remote-ended',
});
await IncomingCallKit.endAllCalls({
reason: 'session-reset',
});
  • incomingCallDisplayed: se mostró la interfaz de usuario nativa con éxito
  • callAccepted: el usuario aceptó desde la interfaz de usuario nativa
  • callDeclined: el usuario rechazó antes de unirse
  • callEnded: su aplicación o la plataforma finalizó la llamada rastreada
  • callTimedOut: la llamada siguió sin respuesta hasta timeoutMs

Cada evento lleva el payload normalizado call y su objeto original. extra Observaciones de la plataforma

Sección titulada “Observaciones de la plataforma”

Lee el
  • Read the Guía de iOS Antes de conectar CallKit en un flujo de PushKit o APNs.
  • Lee la Guía de Android antes de confiar en intenciones de pantalla completa en Android 14 y versiones posteriores.
  • No está soportado para Web.

Sigue adelante desde Getting Started

Si está utilizando

Getting Started para planificar la consola y las operaciones __CAPGO_KEEP_0__, conecte con Usando @API/__CAPGO_KEEP_1__-incoming-call-kit Using @capgo/capacitor-incoming-call-kit para la capacidad nativa en Usando @capgo/capacitor-kit-de-llamada-incompleta, API Resumen para el detalle de implementación en API Resumen, Introducción para el detalle de implementación en Introducción, API Claves para el detalle de implementación en API Claves, y Dispositivos para el detalle de implementación en Dispositivos.