Saltare al contenuto

Getting Started

GitHub
  1. Installa il pacchetto

    Finestra del terminale
    bun add @capgo/capacitor-incoming-call-kit
  2. Sincronizza progetti nativi

    Finestra del terminale
    bunx cap sync
  3. Scegli la fonte del tuo anello Decidi se l'evento di chiamata in arrivo proviene dal tuo backend, un SDK come Twilio o Stream, o da un percorso di push nativo come FCM o PushKit.

Questo plugin gestisce solo la presentazione delle chiamate in arrivo native. La tua app mantiene il controllo del trasporto, dell'autenticazione e della sessione media effettiva.

Il modello di produzione comune è:

  1. Il tuo backend o il chiamante SDK emette un evento di chiamata.
  2. Il tuo app chiama showIncomingCall().
  3. Il plugin presenta un'interfaccia di chiamata in arrivo nativa.
  4. callAccepted insegna al tuo app di unirsi alla stanza reale o alla sessione VoIP.
  5. callDeclined, callEndedo callTimedOut insegna al tuo app di pulire lo stato remoto.
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: identificatore stabile riutilizzato in seguito con endCall()
  • timeoutMs: timeout di massima disponibilità non risposto
  • extra : JSON casuale riflesso indietro nei payload degli ascoltatori
  • android.channelId e android.channelName : regolazione del canale di notifica Android
  • android.showFullScreen : richiede l'attività di chiamata in arrivo a schermo intero Android
  • ios.handleTypescegliere generic, phoneNumbero emailAddress per CallKit
const { calls } = await IncomingCallKit.getActiveCalls();
await IncomingCallKit.endCall({
callId: 'call-42',
reason: 'remote-ended',
});
await IncomingCallKit.endAllCalls({
reason: 'session-reset',
});
  • incomingCallDisplayed: l'interfaccia nativa è stata visualizzata con successo
  • callAccepted: l'utente ha accettato dall'interfaccia nativa
  • callDeclined: l'utente ha rifiutato prima di unirsi
  • callEnded: la tua app o la piattaforma ha interrotto la chiamata tracciata
  • callTimedOut: la chiamata è rimasta senza risposta fino a timeoutMs

Ogni evento trasporta il payload normalizzato call e il tuo oggetto originale. extra Note della piattaforma

Sezione intitolata “Note della piattaforma”

Leggi il
  • Leggi il Guida iOS Prima di integrare CallKit in un flusso di PushKit o APNs.
  • Leggi il Guida Android Prima di affidarti agli intenti a schermo intero su Android 14 e successive versioni.
  • Non supportato per Web.

Continua da Guida per l'Avvio

Se stai utilizzando

Guida per l'Avvio per pianificare dashboard e __CAPGO_KEEP_0__ operazioni, connettilo con Utilizza @API/__CAPGO_KEEP_1__-kit di chiamata in arrivo Using @capgo/capacitor-incoming-call-kit per la capacità nativa in Utilizzo di @capgo/capacitor-kit di chiamata in arrivo, API Panoramica per il dettaglio di implementazione in API Panoramica, Introduzione per il dettaglio di implementazione in Introduzione, API Chiavi per il dettaglio di implementazione in API Chiavi, e Dispositivi per il dettaglio di implementazione in Dispositivi.