Notifications push VoIP
Sous iOS 8, Apple a introduit PushKit et les notifications push VoIP, un nouveau type de notifications push. En plus de la fonctionnalité push standard, une notification 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'
end
2. Dans l’onglet Signature et capacités
, 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 {
/// Initializes the Pushwoosh VoIP module. /// /// - Parameters: /// - supportVideo: A Boolean value indicating whether video calls are supported. /// - ringtoneSound: The name of the custom ringtone sound file to be used for incoming calls (e.g. `"mySound.caf"`). /// - handleTypes: The type of call handle to support. Possible values: /// - `1` – Generic /// - `2` – Phone number /// - `3` – Email address Pushwoosh.VoIP.initializeVoIP(true, ringtoneSound: "mySound.caf", handleTypes: 1)
// Set delegate to receive VoIP call events Pushwoosh.VoIP.delegate = self
return true }
// MARK: - Required PWVoIPCallDelegate Callbacks
func voipDidReceiveIncomingCall(payload: PushwooshVoIP.PWVoIPMessage) { // Handle incoming VoIP push }
func pwProviderDidReset(_ provider: CXProvider) { // Handle provider reset }
func pwProviderDidBegin(_ provider: CXProvider) { // Handle provider activation }}
4. Le protocole PWVoIPCallDelegate
définit des rappels (callbacks) requis et optionnels pour gérer le cycle de vie des appels VoIP et les interactions avec CallKit.
@objc public protocol PWVoIPCallDelegate: NSObjectProtocol {
/// Called when an incoming VoIP push is received. @objc func voipDidReceiveIncomingCall(payload: PushwooshVoIP.PWVoIPMessage)
/// Optional: Called when the incoming call was successfully reported to CallKit. @objc optional func voipDidReportIncomingCallSuccessfully(voipMessage: PushwooshVoIP.PWVoIPMessage)
/// Optional: Called when reporting the incoming call to CallKit failed. @objc optional func voipDidFailToReportIncomingCall(error: Error)
/// Optional: Called when a new outgoing call is started. @objc optional func startCall(_ provider: CXProvider, perform action: CXStartCallAction)
/// Optional: Called when an active call is ended. @objc optional func endCall(_ provider: CXProvider, perform action: CXEndCallAction, voipMessage: PushwooshVoIP.PWVoIPMessage?)
/// Optional: Called when an incoming call is answered. @objc optional func answerCall(_ provider: CXProvider, perform action: CXAnswerCallAction, voipMessage: PushwooshVoIP.PWVoIPMessage?)
/// Optional: Called when the call is muted or unmuted. @objc optional func mutedCall(_ provider: CXProvider, perform action: CXSetMutedCallAction)
/// Optional: Called when the call is held or unheld. @objc optional func heldCall(_ provider: CXProvider, perform action: CXSetHeldCallAction)
/// Optional: Called when a DTMF tone is played. @objc optional func playDTMF(_ provider: CXProvider, perform action: CXPlayDTMFCallAction)
/// Called when the CallKit provider is reset. @objc func pwProviderDidReset(_ provider: CXProvider)
/// Called when the CallKit provider begins. @objc func pwProviderDidBegin(_ provider: CXProvider)
/// Optional: Provides the CallKit call controller instance. @objc optional func returnedCallController(_ controller: CXCallController)
/// Optional: Provides the CallKit provider instance. @objc optional func returnedProvider(_ provider: CXProvider)
/// Optional: Called when the audio session is activated. @objc optional func activatedAudioSession(_ provider: CXProvider, didActivate audioSession: AVAudioSession)
/// Optional: Called when the audio session is deactivated. @objc optional func deactivatedAudioSession(_ provider: CXProvider, didDeactivate audioSession: AVAudioSession)}
5. Téléversez 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 connaître votre avis 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.