Zum Inhalt springen

Getting Started

GitHub

Installation

Installation

Sie 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:

Terminalfenster
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Verwenden 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:

  1. Das Paket installieren

    Terminalfenster
    bun add @capgo/capacitor-incoming-call-kit
  2. Synchronisieren Sie native Projekte

    Terminalfenster
    bunx cap sync
  3. 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.

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:

  1. Ihr Backend oder Ihr Aufruf-SDK sendet ein Ringereignis.
  2. Ihre App ruft showIncomingCall().
  3. Die Erweiterung präsentiert die native Anrufform.
  4. callAccepted Ihre App wird gebeten, dem tatsächlichen Raum oder der VoIP-Sitzung beizutreten.
  5. callDeclined, callEndedoder callTimedOut Erzählt Ihrem App, dass sie sich von Remote-Zustand befreien soll.
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: stabiler Identifier, der später wieder verwendet wird endCall()
  • timeoutMs: bestmögliche Antwort, wenn der Timeout nicht erreicht wird
  • extra: beliebige JSON-Werte, die im Listener-Payloads zurückgegeben werden
  • android.channelId und android.channelName: Einstellung für Android-Notification-Channel
  • android.showFullScreen: Anfrage zum Android-Full-Screen-Incoming-Call-Activity
  • ios.handleTypeWählen Sie generic, phoneNumberoder emailAddress zur 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',
});
  • incomingCallDisplayednatives Benutzeroberfläche wurde erfolgreich angezeigt
  • callAcceptedBenutzer stimmte aus der nativen Benutzeroberfläche zu
  • callDeclinedBenutzer lehnte vor dem Beitritt ab
  • callEndedDeine App oder die Plattform beendete den verfolgten Anruf
  • callTimedOut: Die Anrufung blieb unbeantwortet bis timeoutMs

Jeder Ereignis trägt das normalisierte call Payload und Ihr ursprüngliches extra Objekt.

  • 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.

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.