The Pushkit Voip IOS Swift token does not appear on the console

0

I am trying to add Voip notifications to my app that currently works with Firebase. I am programming in Swift 3, and following a tutorial I arrive at this code, but nothing appears on the console. I have the certificates generated, I believe correctly. Xcode does not show me any error. I have enabled in Capabilities "Background Modes" and "Push Notifications" Could someone guide me? I need to see the token or know where the problem is.

import UIKit import PushKit

@UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?
var token: Data?

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {


        let settings: UIUserNotificationSettings =
            UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
        application.registerUserNotificationSettings(settings)


    application.registerForRemoteNotifications()

    print("app launched with state \(application.applicationState)")


    return true


}

func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings) {

    //register for voip notifications
    let voipRegistry = PKPushRegistry(queue: DispatchQueue.main)
    voipRegistry.desiredPushTypes = Set([PKPushType.voIP])
    voipRegistry.delegate = self;
}

}

AppDelegate extension: PKPushRegistryDelegate {     func pushRegistry (_ registry: PKPushRegistry, didUpdate pushCredentials: PKPushCredentials, for type: PKPushType) {

    //print out the VoIP token. We will use this to test the notification.
    token = pushCredentials.token
    print("voip token: \(pushCredentials.token)")
}


func pushRegistry(registry: PKPushRegistry!, didReceiveIncomingPushWithPayload payload: PKPushPayload!, forType type: String!) {

    let payloadDict = payload.dictionaryPayload["aps"] as? Dictionary<String, String>
    let message = payloadDict?["alert"]

    //present a local notifcation to visually see when we are recieving a VoIP Notification
    if UIApplication.shared.applicationState == UIApplicationState.background {

        let localNotification = UILocalNotification();
        localNotification.alertBody = message
        localNotification.applicationIconBadgeNumber = 1;
        localNotification.soundName = UILocalNotificationDefaultSoundName;

        UIApplication.shared.presentLocalNotificationNow(localNotification);
    }

    else {
        DispatchQueue.main.async {
            let alert = UIAlertView(title: "VoIP Notification", message: message, delegate: nil, cancelButtonTitle: "Ok");
            alert.show()
        }
    }

    print("incoming voip notfication: \(payload.dictionaryPayload)")
}

func pushRegistry(registry: PKPushRegistry!, didInvalidatePushTokenForType type: String!) {

    print("token invalidated")
}

}

    
asked by Sabrina Nicolas 28.07.2018 в 02:05
source

0 answers