Aller au contenu

iOS

GitHub

Sur iOS, le plugin signale l'appel entrant à CallKit. Cela vous permet d'utiliser la feuille d'appel entrant du système et les actions d'appel standardisées sans avoir à créer votre propre interface native.

requestPermissions() se résout immédiatement sur iOS car CallKit ne nécessite pas de boîte de dialogue de permission au 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,
},
});

Utiliser ios.handleType pour contrôler la manière dont CallKit formate l'identifiant :

  • generic pour les identifiants spécifiques à l'app
  • 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 configure pas PushKit ou APNs pour vous.

Pour une sonnerie réelle en arrière-plan ou en état terminé sur iOS, votre application hôte nécessite toujours la configuration de push native d'Apple correspondant à votre stratégie de transport :

  1. Activez les notifications push lorsque votre transport utilise la livraison de push Apple.
  2. Activez le mode arrière-plan Voice over 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 bridge Capacitor est disponible.

Si votre événement de sonnerie n'existe qu'en JavaScript, vous obtiendrez la meilleure expérience lorsque l'application est déjà active au premier plan.

CallKit ne remplace pas votre SDK média. Si la session d'appel réelle utilise l'accès au micro 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>

N'ajoutez que les clés nécessaires à votre flux d'appels réel.

Gardez ces responsabilités dans votre couche applicative

Section intitulée « Gardez ces responsabilités dans votre couche applicative »
  • Enregistrement PushKit et APNs
  • Authentification et rafraîchissement du token
  • Rejoindre la salle réelle ou la session VoIP ensuite callAccepted
  • Terminer ou réconcilier l'état de l'appel distant lors de l'émission du plugin callDeclined, callEnded, ou callTimedOut

Si vous utilisez iOS pour planifier le travail sur les plugins natifs, connectez-l’à Utilisation de @capgo/capacitor-incoming-call-kit pour la capacité native dans Utilisation de @capgo/capacitor-incoming-call-kit, Capgo Répertoire des plugins pour le workflow produit dans Capgo Plugin Directory, Plugins Capacitor par Capgo pour les détails d'implémentation dans Plugins Capacitor par Capgo, Ajouter ou mettre à jour des plugins pour les détails d'implémentation dans Ajout ou mise à jour de plugins, et Alternatives aux plugins Ionic Enterprise pour le workflow produit dans Alternatives aux plugins Ionic Enterprise.