Passer à la navigation

iOS

Sur iOS, le plugin signale l'appel entrant à CallKit. Cela vous donne la feuille de dialogue d'appel entrant système et les actions d'appel standardisées sans que vous deviez construire votre propre interface utilisateur native d'appel entrant.

requestPermissions() se résout immédiatement sur iOS car CallKit lui-même ne nécessite pas de dialogue de demande de permission en temps de exécution.

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,
},
});

Utilisez ios.handleType pour contrôler la façon dont CallKit formate le handle :

  • generic pour les identifiants spécifiques à l'application
  • phoneNumber pour les numéros de téléphone réels
  • emailAddress pour les identités basées sur l'e-mail

Ce plugin ne s'inscrit pas PushKit ou APNs pour vous.

Pour un sonnerage en arrière-plan ou en état terminé réel sur iOS, votre application hôte nécessite toujours la mise en place native Apple push qui correspond à votre stratégie de transport :

  1. Activer les notifications Push lorsque votre transport utilise la livraison Apple push.
  2. Activer le mode de fond de la Voix sur IP lorsque votre application utilise un flux de push VoIP.
  3. Faites parvenir l'événement d'appel entrant à votre application et invoquez ce plugin dès que le Capacitor pont est disponible.

If votre événement de bague existe uniquement en JavaScript, vous obtiendrez la meilleure expérience lorsque l'application est déjà en cours d'exécution en arrière-plan.

CallKit ne remplace pas votre média SDK. Si la session d'appel réelle utilise l'accès au microphone ou à la caméra, ces descriptions d'utilisation doivent toujours figurer dans votre application :

<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>

Ajoutez uniquement les clés dont votre flux d'appel réel a besoin.

Conservez ces responsabilités dans votre couche d'application

Section intitulée “Conservez ces responsabilités dans votre couche d'application”
  • L'inscription PushKit et APNs
  • L'authentification et la mise à jour du jeton
  • Rejoindre la vraie salle ou la session VoIP après callAccepted
  • Terminer ou réconcilier l'état d'appel distant lorsque le plug-in émet callDeclined, callEndedou callTimedOut

Continuez de là sur iOS

Si vous utilisez

iOS pour planifier le travail de plugin natif, connectez-le à En utilisant @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-kit-appel-entrant pour la capacité native dans En utilisant @capgo/capacitor-kit-appel-entrant, for the native capability in Using @capgo/capacitor-incoming-call-kit, pour le flux de travail du produit dans Répertoire de plugin Capgo, Plugins Capgo par __CAPGO_KEEP_1__ pour le détail d'implémentation dans Plugins Capacitor par Capgo Continuez de là sur iOS pour planifier le travail de plugin natif, connectez-le à En utilisant @Capacitor/Capgo-kit-appel-entrant pour la capacité native dans En utilisant @Capacitor/Capgo-kit-appel-entrant, Répertoire de plugin Capacitor pour le flux de travail du produit dans Répertoire de plugin Capacitor, Plugins Capacitor par Capgo pour le détail d'implémentation dans Plugins Capacitor par Capgo Ajouter ou Mettre à Jour les Plugins pour le détail d'implémentation dans Ajouter ou Mettre à Jour les Plugins, et Alternatives de Plugins Entreprise Ionic pour le flux de travail du produit dans Alternatives de Plugins Entreprise Ionic.