Passer à la navigation

iOs

GitHub

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 ayez besoin de créer votre propre interface d'appel native.

requestPermissions() se résout immédiatement sur iOS car CallKit n'a pas besoin d'un dialogue de demande de permission de 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,
},
});

Utilisez ios.handleType pour contrôler la façon dont CallKit formate la prise en charge :

  • 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 pour vous PushKit ou APNs.

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

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

Si votre événement de sonnerie n'existe que sous JavaScript, vous obtiendrez la meilleure expérience alors que l'application est déjà en cours d'exécution en arrière-plan.

CallKit ne remplace pas vos médias SDK. Si la session d'appel réelle utilise l'accès au microphone ou à la caméra, les 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 »
  • Inscription PushKit et APNs
  • Authentification et 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 plugin émet callDeclined, callEnded, ou callTimedOut

Si vous utilisez iOS pour planifier le travail de plugin natif, connectez-le avec En utilisant @capgo/capacitor-kit-appel-entrant pour la capacité native en utilisant En utilisant @capgo/capacitor-kit-appel-entrant, Capgo Répertoire des plugins pour le flux de travail du produit dans Capgo Répertoire des plugins, Capacitor Plugins par Capgo pour les détails d'implémentation dans Capacitor Plugins par Capgo, Ajouter ou Mettre à Jour les Plugins pour les détails d'implémentation dans Ajouter ou Mettre à Jour les Plugins, et Alternatives de Plugins d'Entreprise Ionic pour le flux de travail du produit dans Alternatives de Plugins d'Entreprise Ionic.