Accueil
Copiez une invitation de configuration avec les étapes d'installation et le guide Markdown complet pour ce plug-in.
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
InstallationVous pouvez utiliser notre installation assistée par l'IA pour installer le plugin. Ajoutez les Capgo compétences à votre outil IA à l'aide de 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 l'installation 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 Déterminez si l'événement d'appel entrant provient de votre backend, un SDK tel que Twilio ou Stream, ou un chemin de notification native tel que FCM ou PushKit.
Comment l'intégration s'articule
Section intitulée “Comment l'intégration s'articule”Ce plugin ne possède que la présentation native de l'appel entrant. Votre application conserve toujours la gestion du transport, de l'authentification et de la session de médias réelle.
Le modèle de production courant est :
- Votre backend ou votre SDK d'appel émet un événement de sonnerie.
- Votre application appelle
showIncomingCall(). - Le plugin présente une interface utilisateur native d'appel entrant.
callAcceptedVous informez votre application de rejoindre la salle réelle ou la session VoIP.callDeclined,callEndedoucallTimedOutindique à votre application de 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é ultérieurement avecendCall()timeoutMs: temps d'attente non garanti sans réponseextra: JSON arbitraire renvoyé dans les payloads des écouteursandroid.channelIdetandroid.channelName: réglage du canal de notification Androidandroid.showFullScreen: demande l'activité d'appel entrant plein écran Androidios.handleType: choisissezgeneric,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'interface utilisateur native a été affichée avec succèscallAccepted: l'utilisateur a accepté depuis l'interface utilisateur nativecallDeclined: l'utilisateur a refusé avant de rejoindrecallEnded: votre application ou la plateforme a terminé l'appel suivicallTimedOut: le appel est resté sans réponse jusqu'àtimeoutMs
Chaque événement transporte l'objet normalisé call et votre objet original. extra Remarques de plateforme
Section intitulée “Remarques de plateforme”
Lisez le- guide iOS avant de brancher CallKit dans un flux PushKit ou APNs. Lisez le
- guide Android avant de compter sur les intentions d'écran plein sur Android 14 et ultérieur. Each event carries the normalized __CAPGO_KEEP_0__ and your original __CAPGO_KEEP_1__.
- Le web n'est pas pris en charge.
Continuez de l'étape de démarrage.
Section intitulée « Continuez de l'étape de démarrage ».Si vous utilisez Démarrage pour planifier le tableau de bord et les opérations API, connectez-le avec En utilisant @capgo/capacitor-kit-appel-incoming pour la capacité native dans En utilisant @capgo/capacitor-kit-appel-incoming, Vue d'ensemble de API pour le détail d'implémentation dans Vue d'ensemble de API, Introduction pour le détail 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.