Inizio
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo 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.
-
Installa il pacchetto
Finestra del terminale bun add @capgo/capacitor-incoming-call-kit -
Sincronizza progetti nativi
Finestra del terminale bunx cap sync -
Scegli la tua fonte di anello Decidi se l'evento di chiamata in arrivo proviene dal tuo backend, un SDK come Twilio o Stream, o un percorso di push nativo come FCM o PushKit.
Come si inserisce l'integrazione
Sezione intitolata “Come si inserisce l'integrazione”Questo plugin possiede solo la presentazione di chiamata in arrivo nativa. La tua app possiede ancora il trasporto, l'autenticazione e la sessione media effettiva.
Il modello di produzione comune è:
- Il tuo backend o il SDK di chiamata emette un evento di anello.
- La tua app chiama
showIncomingCall(). - Il plugin presenta la UI di chiamata in arrivo nativa.
callAcceptedInformato la tua app di unirsi alla sessione di VoIP o alla stanza effettiva.callDeclined,callEndedocallTimedOutinsegna all'app di pulire lo stato remoto.
Integrazione minima
Sezione intitolata “Integrazione minima”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', },});Opzioni importanti
Sezione intitolata “Opzioni importanti”callId: identificatore stabile riutilizzato in seguito conendCall()timeoutMs: timeout di risposta non garantitoextra: JSON casuale riprodotto nelle payload dei listenerandroid.channelIdeandroid.channelName: regolazione del canale delle notifiche Androidandroid.showFullScreen: richiede l'attività di chiamata in arrivo Android a schermo interoios.handleType: scegligeneric,phoneNumber, oemailAddressper CallKit
Gestione delle chiamate attive
Sezione intitolata “Gestione delle chiamate attive”const { calls } = await IncomingCallKit.getActiveCalls();
await IncomingCallKit.endCall({ callId: 'call-42', reason: 'remote-ended',});
await IncomingCallKit.endAllCalls({ reason: 'session-reset',});Modello di evento
Sezione intitolata “Modello di evento”incomingCallDisplayed: l'interfaccia utente nativa è stata visualizzata con successocallAccepted: l'utente ha accettato dalla UI nativacallDeclined: l'utente ha rifiutato prima di unirsicallEnded: la tua app o la piattaforma ha interrotto la chiamata tracciatacallTimedOut: la chiamata rimase senza risposta fino atimeoutMs
Ogni evento porta il payload normalizzato call e il tuo oggetto originale. extra Nota della piattaforma
Sezione intitolata “Nota della piattaforma”
Leggi il- guida iOS prima di collegare CallKit in un flusso di PushKit o APNs. Leggi il
- guida Android prima di affidarti agli intenti a schermo intero su Android 14 e versioni successive. __CAPGO_KEEP_0__
- Il web non è supportato.