Saltare al contenuto

Iniziare

GitHub

Puoi utilizzare la nostra configurazione assistita dall'IA per installare il plugin. Aggiungi le Capgo abilità al tuo strumento di AI utilizzando il seguente comando:

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

Poi utilizza il seguente prompt:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-incoming-call-kit` plugin in my project.

Se preferisci l'installazione manuale, installa il plugin eseguendo i seguenti comandi e segui le istruzioni specifiche per la piattaforma riportate di seguito:

  1. Installare 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 possiede solo la presentazione delle chiamate in arrivo native. L'applicazione del tuo utente possiede ancora il trasporto, l'autenticazione e la sessione media reale.

Il modello di produzione comune è:

  1. Il tuo backend o il chiamante SDK emette un evento di squillo.
  2. Il tuo app chiama showIncomingCall().
  3. Il plugin presenta l'interfaccia utente 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 risposta a miglior favore non risposto
  • extra: JSON casuale riflesso indietro nei payload dei listener
  • android.channelId e android.channelName: regolazione del canale di notifica Android
  • android.showFullScreen: richiede l'attività di chiamata Android in modalità schermo intero
  • ios.handleType: scegli generic, phoneNumber, emailAddress per CallKit
const { calls } = await IncomingCallKit.getActiveCalls();
await IncomingCallKit.endCall({
callId: 'call-42',
reason: 'remote-ended',
});
await IncomingCallKit.endAllCalls({
reason: 'session-reset',
});
  • incomingCallDisplayed: è stata visualizzata con successo l'interfaccia utente nativa
  • callAccepted: l'utente ha accettato dalla UI nativa
  • callDeclined: l'utente ha rifiutato prima di unirsi
  • callEnded: l'applicazione 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 l'oggetto originale. extra Note della piattaforma

__CAPGO_KEEP_0__

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 successive versioni.
  • La Web non è supportata.

Se stai utilizzando Guida per l'avvio per pianificare il dashboard e le API operazioni, connettilo con Usando @capgo/capacitor-kit di chiamata in arrivo per la capacità nativa in Usando @capgo/capacitor-kit di chiamata in arrivo Panoramica di API per i dettagli di implementazione in Panoramica di API Introduzione per i dettagli di implementazione in Introduzione Chiavi di API per i dettagli di implementazione in Chiavi di API e Dispositivi per i dettagli di implementazione in Dispositivi.