Prise en main
Copiez un prompt de configuration avec les étapes d'installation et la guide markdown complète pour ce plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-incoming-call-kit`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/incoming-call-kit/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Installation
Sous-titre « Installation »Vous pouvez utiliser notre configuration assistée par l'IA pour installer le plugin. Ajoutez les Capgo compétences à votre outil AI en utilisant la commande suivante :
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsEnsuite, utilisez la prompt suivante :
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-incoming-call-kit` plugin in my project.Si vous préférez la configuration manuelle, installez le plugin en exécutant les commandes suivantes et suivez les instructions spécifiques à la plateforme ci-dessous :
-
Installer le package
Fenêtre de terminal bun add @capgo/capacitor-incoming-call-kit -
Synchroniser les projets natifs
Fenêtre de terminal bunx cap sync -
Choisissez votre source de sonnerie Decide whether the incoming-call event comes from your backend, an SDK such as Twilio or Stream, or a native push path such as FCM or PushKit.
Comment les éléments s'intègrent
Sous-titre « Comment les éléments s'intègrent »Cette extension ne gère que la présentation d'appel entrant natif. Votre application conserve toujours la gestion du transport, de l'authentification et de la session média réelle.
Le modèle de production courant est :
- Your backend or calling SDK emits a ring event.
- Votre application appelle
showIncomingCall(). - Le plugin présente une interface utilisateur d'appel entrant natif.
callAcceptedinforme votre application pour rejoindre la salle ou la session VoIP réelle.callDeclined,callEnded, oucallTimedOutinforme votre application pour nettoyer l'état distant.
Intégration minimale
Section intitulée « Intégration minimale »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', },});Options importantes
Section intitulée « Options importantes »callId: identifiant stable réutilisé plus tard avecendCall()timeoutMs: temps d'attente non répondu au mieux de ses capacitésextra: JSON arbitraire renvoyé dans les payloads des écouteursandroid.channelIdetandroid.channelName: Réglage du canal de notification Androidandroid.showFullScreen: demande l'activité d'appel entrant à écran plein de l'Androidios.handleType: choisirgeneric,phoneNumber, ouemailAddresspour CallKit
Gestion des appels actifs
Section intitulée « Gestion des appels actifs »const { calls } = await IncomingCallKit.getActiveCalls();
await IncomingCallKit.endCall({ callId: 'call-42', reason: 'remote-ended',});
await IncomingCallKit.endAllCalls({ reason: 'session-reset',});Modèle d'événement
Section intitulée « Modèle d'événement »incomingCallDisplayed: l'IHM native a été affichée avec succèscallAccepted: l'utilisateur a accepté depuis l'interface nativecallDeclined: l'utilisateur a refusé avant de rejoindrecallEnded: votre application ou la plateforme a terminé l'appel suivicallTimedOut: l'appel est resté sans réponse jusqu'àtimeoutMs
Chaque événement transporte le payload normalisé et votre objet original. call Notes de la plateforme extra Section intitulée « Notes de la plateforme »
- Guide iOS avant de brancher CallKit dans un flux PushKit ou APNs. before wiring CallKit into a PushKit or APNs flow.
- Lisez le guide Android avant de vous appuyer sur les intentions d'écran plein écran sur Android 14 et ultérieurs.
- La version Web n'est pas prise en charge.
Continuez de la section « Commencer »
Section intitulée « Commencer »Si vous utilisez Commencer pour planifier le tableau de bord et les opérations API, connectez-l’avec En utilisant @capgo/capacitor-kit-appel-entrant pour la capacité native en utilisant En utilisant @capgo/capacitor-kit-appel-entrant, Vue d'ensemble de API pour les détails d'implémentation dans API Vue d'ensemble Introduction pour les détails d'implémentation dans Introduction API Clés pour les détails d'implémentation dans API Clés, et Appareils pour les détails d'implémentation dans Appareils.