SAPcpmsRemoteNotificationClient

public class SAPcpmsRemoteNotificationClient

This class is an API to upload an APNS device token that was retrieved using Apple’s AppDelegate method application:didRegisterForRemoteNotificationsWithDeviceToken delegate to SAPcpms
Usage sample:

// create URLs
let url = URL(string: <#your token registration url#>)!
let feedbackUrl = URL(string: <#your feedback url#>)!

// create SAPURLSession
let urlSession = SAPURLSession()

// create SAPcpmsRemoteNotificationClient with custom URL
let remoteNotificationClient = SAPcpmsRemoteNotificationClient(sapURLSession: urlSession, destinationURL: url, feedbackURL: feedbackUrl)

// when you received your APNS token in didRegisterForRemoteNotificationsWithDeviceToken delegate, you can upload it to SAPcpms using the registerDeviceToken method
remoteNotificationClient.registerDeviceToken(deviceToken) { error in
// error handling ...
}
  • Default initializer for using full URL as an input

    Declaration

    Swift

    public init(sapURLSession: SAPURLSession, destinationURL: URL, feedbackURL: URL? = nil)

    Parameters

    urlSession

    a SAPURLSession implementation that can be used to communicate with the SAPcpms

    destinationURL

    the full URL for push token registration

    feedbackURL

    (optional): the full URL for sending notification status

  • Convenience initializer for using SAPcpmsSettingsParameters as an input

    Declaration

    Swift

    public convenience init(sapURLSession: SAPURLSession, settingsParameters: SAPcpmsSettingsParameters)

    Parameters

    urlSession

    a SAPURLSession implementation that can be used to communicate with the SAPcpms

    settingsParameters

    an instance of the SAPcpmsSettingsParameters with prefilled values to be able to concatenate the SAPcpms URL; Required parameters: host, applicationID, deviceID

  • Upload the device token to the server

    Declaration

    Swift

    public func registerDeviceToken(_ deviceToken: Data, withParameters parameters: SAPcpmsRemoteNotificationParameters? = nil, completionHandler: @escaping (Error?) -> Void)

    Parameters

    deviceToken

    the device token from application:didRegisterForRemoteNotificationsWithDeviceToken delegate

    completionHandler

    called after the request completes; The parameter is an Error that could be nil.

  • Unregister the existing device token from the server

    Declaration

    Swift

    public func unregisterDeviceToken(completionHandler: @escaping (_ error: Error?) -> Void = SAPcpmsRemoteNotificationClient.defaultCompletionHandler )

    Parameters

    completionHandler

    called after the request completes; The parameter is an Error that could be nil.

  • Unregister the existing device token from the server

    Declaration

    Swift

    @available(*, deprecated, renamed: "unregisterDeviceToken")
    public func deregisterDeviceToken(completionHandler: @escaping (_ error: Error?) -> Void = SAPcpmsRemoteNotificationClient.defaultCompletionHandler )

    Parameters

    completionHandler

    called after the request completes; The parameter is an Error that could be nil.

  • Provide information about the notification status. This adjusts the notification status to ‘consumed’ on SAP Cloud Platform Mobile Services cockpit Reporting menu.

    Declaration

    Swift

    public func updateNotificationStatus(userInfo: [AnyHashable: Any], completionHandler: @escaping (_ error: Error?) -> Void = SAPcpmsRemoteNotificationClient.defaultCompletionHandler )

    Parameters

    userInfo

    userInfo parameter from the ‘didReceiveRemoteNotification’ application delegate

    completionHandler

    called after the request completes; The parameter is an Error that could be nil.

  • The default completion handler for SAPcpmsRemoteNotificationClient. Logs the error with the root logger if there is any.

    Declaration

    Swift

    public static func defaultCompletionHandler(_ error: Error?)

    Parameters

    error

    error that will be logged