PushProvider

PushProvider Class reference for Kustomer Chat iOS Core API .

Used to register and deregister devices with our push notification service. To enable push, see Push Keys and Certificates.

public class PushProvider : NSObject, UNUserNotificationCenterDelegate

shared

public static let shared: PushProvider

The central object for managing Kustomer push notification-related activities.

deviceToken

public var deviceToken: Data? { get }

The current device token. May or may not be registered for push notifications.

You need to have put PushManager.shared.application(application, didRegisterForRemoteNotificationsWithDeviceToken: deviceToken) inside your application’s application(application, didRegisterForRemoteNotificationsWithDeviceToken: deviceToken) method for this to work.

deviceTokenString

public var deviceTokenString: String? { get }

The deviceToken as a UTF8 string

deregisterCurrentDeviceForPushNotifications(_:)

public func deregisterCurrentDeviceForPushNotifications(_ completion: @escaping ((Result<Void, KError>) -> Void))

If the current device has registered for Kustomer push notifications, deregisters it.

Requires an active internet connection.

Push notifications

didFailToRegisterForRemoteNotifications(error:)

public func didFailToRegisterForRemoteNotifications(error: Error)

If you’re using our push notifications, place this in your AppDelegate’s application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) method

didRegisterForRemoteNotifications(deviceToken:)

public func didRegisterForRemoteNotifications(deviceToken: Data)

If you’re using our push notifications, place this in your AppDelegate’s func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)

deviceToken: Pass the deviceToken object that is passed to your AppDelegate

notificationIsFromKustomer

public func notificationIsFromKustomer(_ notification:UNNotification) -> Bool

Tells you if a push notification is from Kustomer. The threadIdentifier of all UNNotifications from our platform is either "kustomer.app.chat" (remote pushes) or "kustomer.app.chat.local" (local push notifications)

requestAuthorizationForPush()

public func requestAuthorizationForPush()

Asks for permissions to send notifications.

You need to call this before push notifications will work. You can call it as many times as you want. If you’re already using UNUserNotificationCenter.current().center.requestAuthorization(...) somewhere else, you don’t need to call this method.

Source code of this method for advanced push users:

public func requestAuthorizationForPush(){
     UNUserNotificationCenter.current().requestAuthorization(options:[.alert,.sound]) { (granted, error) in
       DispatchQueue.main.async {
         UIApplication.shared.registerForRemoteNotifications()
       }
     }
    }

registerDeviceForPushNotifications()

public func registerDeviceForPushNotifications()

UNUserNotificationCenterDelegate

userNotificationCenter(_:didReceive:withCompletionHandler:)

public func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void)

This gets called when you tap a push notification.

If you have set a unUserNotificationCenterDelegate, your unUserNotificationCenterDelegate will get called if the notification isn’t from Kustomer.

userNotificationCenter(_:willPresent:withCompletionHandler:)

public func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)

This gets called when you get a push notification while the app is open. if you have set a unUserNotificationCenterDelegate, your unUserNotificationCenterDelegate will get called if the notification isn’t from Kustomer.

userNotificationCenter(_:openSettingsFor:)

public func userNotificationCenter(_ center: UNUserNotificationCenter, openSettingsFor notification: UNNotification?)