Vai al contenuto

iOS

GitHub

Su iOS, il plugin segnala la chiamata in arrivo a CallKit. Questo ti permette di usare la schermata di sistema per le chiamate in arrivo e le azioni standardizzate, senza dover sviluppare una tua UI nativa.

requestPermissions() si risolve immediatamente su iOS poiché CallKit non richiede un dialog per i permessi a runtime.

import { IncomingCallKit } from '@capgo/capacitor-incoming-call-kit';
await IncomingCallKit.showIncomingCall({
callId: 'call-42',
callerName: 'Ada Lovelace',
handle: '+1 555 010 020',
ios: {
handleType: 'phoneNumber',
supportsHolding: true,
supportsDTMF: false,
},
});

Usa ios.handleType per controllare come CallKit formatta l'handle:

  • generic per identificativi specifici dell'app
  • phoneNumber per numeri di telefono reali
  • emailAddress per identità basate su email

Questo plugin non registra PushKit o APNs per te.

Per far suonare l'app in background o a stato terminato su iOS, l'app host deve avere la configurazione nativa dei push Apple che corrisponde alla tua strategia di trasporto:

  1. Abilita le Push Notifications se il tuo provider utilizza la consegna push di Apple.
  2. Abilita la modalità background Voice over IP se la tua app utilizza un flusso di push VoIP.
  3. Invia l'evento di chiamata in arrivo alla tua app e invoca questo plugin non appena il bridge Capacitor è disponibile.

Se l'evento di suoneria esiste solo in JavaScript, otterrai le migliori prestazioni quando l'app è già in esecuzione in foreground.

CallKit non sostituisce il tuo SDK media. Se la sessione di chiamata reale richiede l'accesso a microfono o fotocamera, le relative descrizioni d'uso devono comunque essere presenti nella tua app:

<key>NSMicrophoneUsageDescription</key>
<string>This app uses the microphone for calls.</string>
<key>NSCameraUsageDescription</key>
<string>This app uses the camera for video calls.</string>

Aggiungi solo le chiavi necessarie al tuo flusso di chiamata.

  • Registrazione PushKit e APNs
  • Autenticazione e refresh del token
  • Accesso alla stanza reale o alla sessione VoIP in seguito callAccepted
  • Chiusura o riconciliazione dello stato della chiamata remota all'emissione del plugin callDeclined, callEnded, o callTimedOut

Se stai usando iOS per pianificare il lavoro sui plugin nativi, collegalo a Utilizzo di @capgo/capacitor-incoming-call-kit per la funzionalità nativa in Usare @capgo/capacitor-incoming-call-kit, Directory dei plugin di Capgo per il workflow del prodotto nella Capgo Plugin Directory, Plugin Capacitor di Capgo per i dettagli di implementazione in Capacitor Plugins di Capgo, Aggiunta o aggiornamento dei plugin per i dettagli su come aggiungere o aggiornare i plugin, e Alternative ai plugin Ionic Enterprise per il workflow del prodotto in Alternative ai plugin Ionic Enterprise.