Passer à la navigation

Getting Started

GitHub

Vous pouvez utiliser notre Setup assisté par l'IA pour installer le plugin. Ajoutez les Capgo compétences à votre outil IA en utilisant la commande suivante :

Fenêtre de terminal
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Ensuite, 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 le Setup manuel, installez le plugin en exécutant les commandes suivantes et suivez les instructions spécifiques à la plateforme ci-dessous :

  1. Installer le package

    Fenêtre de terminal
    bun add @capgo/capacitor-incoming-call-kit
  2. Synchroniser les projets natifs

    Fenêtre de terminal
    bunx cap sync
  3. Choisissez votre source de sonnerie Décidez si l'événement d'appel entrant provient de votre backend, d'un SDK tel que Twilio ou Stream, ou d'un chemin de push natif tel que FCM ou PushKit.

Ce plugin n'assume que la présentation des appels entrants natifs. Votre application conserve toujours le transport, l'authentification et la session média réelle.

Le modèle de production courant est :

  1. Votre backend ou votre SDK d'appel émet un événement de sonnerie.
  2. Votre application appelle showIncomingCall().
  3. Le plugin présente une interface utilisateur d'appel entrant native.
  4. callAccepted informe votre application pour rejoindre la salle ou la session VoIP réelle.
  5. callDeclined, callEnded, ou callTimedOut informe votre application pour nettoyer l'état distant.
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: identifiant stable réutilisé ultérieurement avec endCall()
  • timeoutMs: temps limite de réponse non répondu avec effort
  • extra: JSON arbitraire renvoyé dans les payloads des écouteurs
  • android.channelId et android.channelName: Réglage du canal de notification Android
  • android.showFullScreen: demande l'activité d'appel en plein écran Android
  • ios.handleType: choisir generic, phoneNumber, ou emailAddress pour CallKit
const { calls } = await IncomingCallKit.getActiveCalls();
await IncomingCallKit.endCall({
callId: 'call-42',
reason: 'remote-ended',
});
await IncomingCallKit.endAllCalls({
reason: 'session-reset',
});
  • incomingCallDisplayed: l'IHM native a été affichée avec succès
  • callAccepted: l'utilisateur a accepté depuis l'interface native
  • callDeclined: l'utilisateur a refusé avant de rejoindre
  • callEnded: votre application ou la plateforme a terminé l'appel suivi
  • callTimedOut: l'appel est resté sans réponse jusqu'à timeoutMs

Chaque événement transporte le payload normalisé et votre objet original. call Remarques de la plateforme extra Section intitulée « Remarques de la plateforme »

Lisez le

guide iOS
  • avant de brancher CallKit dans un flux PushKit ou APNs. Remarques de la plateforme Lisez le guide de style
  • Lisez le Guide Android pour Android avant de vous appuyer sur les intentions d'écran plein écran sur Android 14 et ultérieurs.
  • Le Web n'est pas pris en charge.

Continuez de la section "Getting Started"

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-l’avec Utilisation de @capgo/capacitor-kit-de-réception-entrant Pour la capacité native dans l'utilisation de @capgo/capacitor-incoming-call-kit, API Overview 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.