Pushs VoIP
Dans iOS 8, Apple a introduit PushKit, et les pushs VoIP - un nouveau type de notifications push. En plus de la fonctionnalité de push standard, un push VoIP permet à l’application d’exécuter du code avant d’afficher la notification à l’utilisateur.
1. Ajoutez le module PushwooshVoIP à votre projet.
Swift Package Manager

Cocoapods
# Uncomment the next line to define a global platform for your project# platform :ios, '9.0'
target 'MyApp' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks!
pod 'PushwooshXCFramework' pod 'PushwooshFramework/PushwooshVoIP'
end2. Dans l’onglet Signing & Capabilities, ajoutez la capacité Voice over IP en cochant la case, comme le montre la capture d’écran ci-dessous :

3. Initialisez le module PushwooshVoIP comme indiqué dans le code ci-dessous.
import UIKitimport PushwooshFrameworkimport PushwooshVoIPimport CallKitimport PushKit
@mainclass AppDelegate: UIResponder, UIApplicationDelegate, PWVoIPCallDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
/// Initialise le module VoIP de Pushwoosh. /// /// - Paramètres : /// - supportVideo : Une valeur booléenne indiquant si les appels vidéo sont pris en charge. /// - ringtoneSound : Le nom du fichier audio de sonnerie personnalisé à utiliser pour les appels entrants (par ex. `"mySound.caf"`). /// - handleTypes : Le type de handle d'appel à prendre en charge. Valeurs possibles : /// - `1` – Générique /// - `2` – Numéro de téléphone /// - `3` – Adresse e-mail Pushwoosh.VoIP.initializeVoIP(true, ringtoneSound: "mySound.caf", handleTypes: 1)
// Définit le délégué pour recevoir les événements d'appel VoIP Pushwoosh.VoIP.delegate = self
return true }
// MARK: - Rappels PWVoIPCallDelegate requis
func voipDidReceiveIncomingCall(payload: PushwooshVoIP.PWVoIPMessage) { // Gérer le push VoIP entrant }
func pwProviderDidReset(_ provider: CXProvider) { // Gérer la réinitialisation du fournisseur }
func pwProviderDidBegin(_ provider: CXProvider) { // Gérer l'activation du fournisseur }}4. Le protocole PWVoIPCallDelegate définit des rappels requis et optionnels pour gérer le cycle de vie des appels VoIP et les interactions avec CallKit.
@objc public protocol PWVoIPCallDelegate: NSObjectProtocol {
/// Appelé lorsqu'un push VoIP entrant est reçu. @objc func voipDidReceiveIncomingCall(payload: PushwooshVoIP.PWVoIPMessage)
/// Optionnel : Appelé lorsque l'appel entrant a été signalé avec succès à CallKit. @objc optional func voipDidReportIncomingCallSuccessfully(voipMessage: PushwooshVoIP.PWVoIPMessage)
/// Optionnel : Appelé lorsque le signalement de l'appel entrant à CallKit a échoué. @objc optional func voipDidFailToReportIncomingCall(error: Error)
/// Optionnel : Appelé lorsqu'un nouvel appel sortant est démarré. @objc optional func startCall(_ provider: CXProvider, perform action: CXStartCallAction)
/// Optionnel : Appelé lorsqu'un appel actif est terminé. @objc optional func endCall(_ provider: CXProvider, perform action: CXEndCallAction, voipMessage: PushwooshVoIP.PWVoIPMessage?)
/// Optionnel : Appelé lorsqu'un appel entrant est répondu. @objc optional func answerCall(_ provider: CXProvider, perform action: CXAnswerCallAction, voipMessage: PushwooshVoIP.PWVoIPMessage?)
/// Optionnel : Appelé lorsque l'appel est mis en sourdine ou réactivé. @objc optional func mutedCall(_ provider: CXProvider, perform action: CXSetMutedCallAction)
/// Optionnel : Appelé lorsque l'appel est mis en attente ou repris. @objc optional func heldCall(_ provider: CXProvider, perform action: CXSetHeldCallAction)
/// Optionnel : Appelé lorsqu'une tonalité DTMF est jouée. @objc optional func playDTMF(_ provider: CXProvider, perform action: CXPlayDTMFCallAction)
/// Appelé lorsque le fournisseur CallKit est réinitialisé. @objc func pwProviderDidReset(_ provider: CXProvider)
/// Appelé lorsque le fournisseur CallKit commence. @objc func pwProviderDidBegin(_ provider: CXProvider)
/// Optionnel : Fournit l'instance du contrôleur d'appel CallKit. @objc optional func returnedCallController(_ controller: CXCallController)
/// Optionnel : Fournit l'instance du fournisseur CallKit. @objc optional func returnedProvider(_ provider: CXProvider)
/// Optionnel : Appelé lorsque la session audio est activée. @objc optional func activatedAudioSession(_ provider: CXProvider, didActivate audioSession: AVAudioSession)
/// Optionnel : Appelé lorsque la session audio est désactivée. @objc optional func deactivatedAudioSession(_ provider: CXProvider, didDeactivate audioSession: AVAudioSession)}5. Téléchargez votre certificat VoIP dans le Control Panel de Pushwoosh conformément au Guide de configuration, et choisissez la passerelle de Production.
C’est tout !
Partagez vos commentaires avec nous
Anchor link toVos commentaires nous aident à créer une meilleure expérience, nous serions donc ravis de vous entendre si vous rencontrez des problèmes lors du processus d’intégration du SDK. Si vous rencontrez des difficultés, n’hésitez pas à nous faire part de vos réflexions via ce formulaire.