Getting Started
Einen Einrichtungsvorschlag mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin kopieren.
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-Werkzeug hinzufügen, indem Sie den folgenden Befehl ausführen:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsVerwenden Sie dann den folgenden Vorschlag:
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
Terminalfenster bun add @capgo/capacitor-incoming-call-kit -
Synchronisieren Sie native Projekte
Terminalfenster 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 Anrufform. Ihre App besitzt immer noch den Transport, die Authentifizierung und die tatsächliche Medienverbindung.
Die gemeinsame Produktionsmuster ist:
- Ihr Backend oder Ihr Aufruf-SDK sendet ein Ringereignis.
- Ihre App ruft
showIncomingCall(). - Die Erweiterung präsentiert die native Anrufform.
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.
Minimaler Integration
Abschnitt mit dem Titel „Minimaler Integration“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 der Timeout nicht erreicht wirdextra: beliebige JSON-Werte, die im Listener-Payloads zurückgegeben werdenandroid.channelIdundandroid.channelName: Einstellung für Android-Notification-Channelandroid.showFullScreen: Anfrage zum Android-Full-Screen-Incoming-Call-Activityios.handleTypeWählen Siegeneric,phoneNumberoderemailAddresszur CallKit
Aktive Anrufe verwalten
Abschnitt: Aktive Anrufe verwaltenconst { calls } = await IncomingCallKit.getActiveCalls();
await IncomingCallKit.endCall({ callId: 'call-42', reason: 'remote-ended',});
await IncomingCallKit.endAllCalls({ reason: 'session-reset',});Event-Modell
Abschnitt: Event-ModellincomingCallDisplayednatives Benutzeroberfläche wurde erfolgreich angezeigtcallAcceptedBenutzer stimmte aus der nativen Benutzeroberfläche zucallDeclinedBenutzer lehnte vor dem Beitritt abcallEndedDeine App oder die Plattform beendete den verfolgten AnrufcallTimedOut: Die Anrufung blieb unbeantwortet bistimeoutMs
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 bevor Sie CallKit in einen PushKit- oder APNs-Fluss einbinden.
- Lesen Sie die Android-Leitfaden bevor Sie sich auf volle Bildschirm-Intents auf Android 14 und später verlassen.
- Web wird nicht unterstützt.
Fortsetzen Sie mit Getting Started
Abschnitt mit dem Titel „Fortsetzen Sie mit Getting Started”Wenn Sie Getting Started für die 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.