Saltar al contenido

iOS

GitHub

En iOS, el plugin reporta la llamada entrante a CallKit. Eso te da la hoja de llamada entrante del sistema y acciones de llamada estandarizadas sin crear tu propia UI nativa de llamada entrante.

requestPermissions() se resuelve de inmediato en iOS porque CallKit no requiere un diálogo de permiso en tiempo de ejecución.

import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';
await IncomingCallKit.showIncomingCall({
callId: 'call-42',
callerName: 'Ada Lovelace',
handle: '+1 555 010 020',
ios: {
handleType: 'phoneNumber',
supportsHolding: true,
supportsDTMF: false,
},
});

Usa ios.handleType para controlar cómo CallKit formatea el handle:

  • generic para identificadores específicos de la app
  • phoneNumber para números de teléfono reales
  • emailAddress para identidades basadas en email

Este plugin no registra PushKit ni APNs por ti.

Para que el tono suene realmente en segundo plano o con la app cerrada en iOS, tu app host aún necesita la configuración nativa de Apple push que coincida con tu estrategia de transporte:

  1. Activa las Push Notifications cuando tu transporte use la entrega de Apple push.
  2. Activa el modo background Voice over IP cuando tu app use un flujo de VoIP push.
  3. Envía el evento de llamada entrante a tu app e invoca este plugin en cuanto el bridge Capacitor esté disponible.

Si tu evento de llamada solo existe en JavaScript, obtendrás la mejor experiencia mientras la app ya esté ejecutándose en primer plano.

CallKit no reemplaza tu SDK de medios. Si la sesión de llamada real usa el micrófono o la cámara, esas descripciones de uso deben seguir en tu app:

<key>NSMicrophoneUsageDescription</key>
<string>This app uses the microphone for calls.</string>
<key>NSCameraUsageDescription</key>
<string>This app uses the camera for video calls.</string>

Agrega solo las keys que tu flujo de llamadas necesite.

Mantén estas responsabilidades en tu capa de app

Sección titulada “Mantén estas responsabilidades en tu capa de app”
  • Registro de PushKit y APNs
  • Autenticación y refresh de tokens
  • Unirse a la sala real o sesión VoIP después callAccepted
  • Finalizar o conciliar el estado de la llamada remota al emitir el plugin callDeclined, callEnded, o callTimedOut

Si estás usando iOS para planificar el trabajo con plugins nativos, conéctalo con Uso de @capgo/capacitor-incoming-call-kit para la capacidad nativa en Uso de @capgo/capacitor-incoming-call-kit, Directorio de plugins de Capgo para el flujo de trabajo del producto en Capgo Plugin Directory, Plugins de Capacitor por Capgo para el detalle de implementación en los Plugins de Capacitor por Capgo, Añadir o actualizar plugins para el detalle de implementación en Agregar o actualizar plugins, y Alternativas a plugins de Ionic Enterprise para el flujo de trabajo del producto en Alternativas a plugins de Ionic Enterprise.