Zum Inhalt springen

Getting Started

GitHub
  1. Install das Paket

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

    Terminalfenster
    bunx cap sync
  3. Wähle deine Ringquelle Entscheide, ob das eingehende Anrufereignis von deinem Backend, einem SDK wie Twilio oder Stream, oder einem nativen Push-Path wie FCM oder PushKit kommt.

Dieser Plugin besitzt nur die native Anrufpräsentation. Deine App besitzt noch immer den Transport, die Authentifizierung und die tatsächliche Medien-Sitzung.

Die häufigste Produktionsmuster ist:

  1. Ihr Backend oder die Anwendung ruft SDK aus und sendet ein Ringereignis.
  2. Ihre App ruft showIncomingCall().
  3. Das Plugin präsentiert eine native Eingangsanruf-UI.
  4. callAccepted erzählt Ihrer App, sich dem tatsächlichen Raum oder der VoIP-Sitzung anzuschließen.
  5. callDeclined, callEnded, oder callTimedOut erzählt Ihrer App, das Remote-Zustand zu bereinigen.
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: Timeout auf bestem Versuch
  • extra: JSON wird willkürlich im Listener-Payloads zurückgegeben
  • android.channelId und android.channelName: Einstellungen für Android-Notification-Kanäle
  • android.showFullScreen: fordert die Android-Vollbildschirm-Eingangsaktivität an
  • ios.handleType: wählen Sie generic, phoneNumber, oder emailAddress zur CallKit
const { calls } = await IncomingCallKit.getActiveCalls();
await IncomingCallKit.endCall({
callId: 'call-42',
reason: 'remote-ended',
});
await IncomingCallKit.endAllCalls({
reason: 'session-reset',
});
  • incomingCallDisplayed: Die native Benutzeroberfläche wurde erfolgreich angezeigt
  • callAccepted: Der Benutzer hat aus der native Benutzeroberfläche akzeptiert
  • callDeclined: Der Benutzer hat vor dem Beitritt abgelehnt
  • callEnded: Ihre App oder die Plattform beendete das verfolgte Gespräch
  • callTimedOut: Das Gespräch blieb unbeantwortet bis timeoutMs

Jedes Ereignis trägt das normalisierte call Datenpaket und Ihr Original extra Objekt.

  • Lesen Sie die iOS-Leitfaden Bevor Sie CallKit in einen PushKit- oder APNs-Fluss einbinden.
  • Lese den Android-Leitfaden Bevor Sie sich auf volle Bildschirm-Intents auf Android 14 und später verlassen.
  • Web wird nicht unterstützt.

Verwenden Sie @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-eingehendes-Anruf-Kit Bevor Sie CallKit in einen PushKit- oder APNs-Fluss einbinden, lesen Sie diese Anleitung. to plan dashboard and API operations, connect it with Using @capgo/capacitor-incoming-call-kit für die native Fähigkeit in Verwendung von @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.