Getting Started
Eine Einrichtungsvorschlag kopieren mit den Installationsanweisungen und der vollständigen Markdown-Anleitung für diesen 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
InstallationSie können unsere AI-gestützte Einrichtung verwenden, um das Plugin zu installieren. Fügen Sie den Capgo-Fähigkeiten Ihre AI-Tool mithilfe der folgenden Befehl hinzu:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsVerwenden Sie dann die folgende Anfrage:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-incoming-call-kit` plugin in my project.Wenn Sie die manuelle Einrichtung bevorzugen, installieren Sie das Plugin, indem Sie die folgenden Befehle ausführen und folgen Sie den unten angegebenen Plattform-spezifischen Anweisungen:
-
Das Paket installieren
Terminal-Fenster bun add @capgo/capacitor-incoming-call-kit -
Synchronisieren Sie native Projekte
Terminal-Fenster bunx cap sync -
Wählen Sie Ihre Ringquelle Beschließen Sie, ob das eingehende Anrufereignis von Ihrem Backend, einem SDK wie Twilio oder Stream, oder einem nativen Push-Path wie FCM oder PushKit stammt.
Wie die Integration zusammenpasst
Abschnitt mit dem Titel “Wie die Integration zusammenpasst”Diese Erweiterung besitzt nur die native Anruffeinleitung. Ihre App besitzt noch immer den Transport, die Authentifizierung und die tatsächliche Medien-Sitzung.
Die gemeinsame Produktionsmuster ist:
- Ihr Backend oder Ihr Aufruf-SDK sendet ein Ringereignis.
- Ihre App ruft
showIncomingCall(). - Die Erweiterung präsentiert die native Anruffeinleitung.
callAcceptedIhre App wird gebeten, dem tatsächlichen Raum oder der VoIP-Sitzung beizutreten.callDeclined,callEndedodercallTimedOuterzählt Ihrem App, dass sie sich von Remote-Zustand befreien soll.
Minimalintegration
Abschnitt mit dem Titel „Minimalintegration“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', },});Wichtige Optionen
Abschnitt mit dem Titel „Wichtige Optionen“callId: stabiler Identifier, der später wieder verwendet wirdendCall()timeoutMs: bestmögliche Antwort, wenn die Zeitüberschreitung nicht beantwortet wirdextra: beliebige JSON-Werte, die im Listener-Payload wiederholt werdenandroid.channelIdundandroid.channelName: Einstellung für Android-Notification-Channelandroid.showFullScreen: Anfrage zum Android-Full-Screen-Incoming-Call-Activityios.handleType: wählengeneric,phoneNumber, oderemailAddressfür CallKit
Aktive Anrufe verwalten
Abschnitt „Aktive Anrufe verwalten“const { calls } = await IncomingCallKit.getActiveCalls();
await IncomingCallKit.endCall({ callId: 'call-42', reason: 'remote-ended',});
await IncomingCallKit.endAllCalls({ reason: 'session-reset',});Ereignismodell
Abschnitt „Ereignismodell“incomingCallDisplayed: Die native Benutzeroberfläche wurde erfolgreich angezeigtcallAccepted: Der Benutzer hat aus der native Benutzeroberfläche akzeptiertcallDeclined: Der Benutzer hat vor dem Beitritt abgelehntcallEnded: Ihr App oder die Plattform beendete den verfolgten AnrufcallTimedOut: Die Anrufung blieb unbeantwortet bis zu dem ZeitpunkttimeoutMs
Jeder Ereignis trägt das normalisierte call Payload und Ihr ursprüngliches extra Objekt.
Plattformhinweise
Abschnitt mit dem Titel “Plattformhinweise”- Lesen Sie die iOS-Leitfaden vor der Verbindung von CallKit in einen PushKit- oder APNs-Fluss.
- Lesen Sie die Android-Leitfaden vor der Verwendung von volldarstellenden Intents auf Android 14 und später.
- Web wird nicht unterstützt.
Weiter von Getting Started
Abschnitt mit dem Titel “Weiter von Getting Started”Wenn Sie Getting Started Getting Started zur Planung Ihres Dashboards und API-Operationen verwenden, verbinden Sie es mit Mit @capgo/capacitor-eingehendes-Anruf-Kit für die native Fähigkeit in Mit @capgo/capacitor-eingehendes-Anruf-Kit, API-Übersicht für die Implementierungsdetails in API-Übersicht, Einführung für die Implementierungsdetails in Einführung, API Schlüssel für die Implementierungsdetails in API Schlüssel, und Geräte für die Implementierungsdetails in Geräte.