Classes

The following classes are available globally.

  • The API to use to access unblu suite functionality like showing, opening conversations

    Before calling any other function #configureApi should be called inside the AppDelegate.

    Use the constants of UnbluEventApi to register for events and access their user info data

    A typical flow for the usage would be:

    AppDelegate#application() {
       UnbluAgentApi.instance.configureApi(UnbluApiConfiguration(unbluBaseUrl: "<base-url>", apiKey: "<apiKey>"))
    
       //register for general errors and/or also other events
       NotificationCenter.default.addObserver(self, selector: #selector(AppDelegate.handleErrorEvent(notification:)), name: Notification.Name.UnbluError, object: nil)
    
       //start the api. This could also be done later when it is needed, but it will take a while until the api is ready
       UnbluAgentApi.instance.initApi(success: {<success handling>}, failure: {<error handling>})
    }
    
    SomeViewController#showConversations() {
       //the conversations should be shown
       UnbluAgentApi.instance.showUi(visible: true)
    }
    
    See more

    Declaration

    Swift

    public class UnbluAgentApi : UnbluCoreApi
  • Entry point to use the call functionality of Unblu to do audio and video calls. This module has to be registered via UnbluApiConfiguration.register(module: UnbluCallModuleProvider.module). To use the api of the UnbluCallModule in the application, use UnbluCallModuleProvider.api.

    See more

    Declaration

    Swift

    public class UnbluCallModuleProvider
  • Entry point to use the co-browsing functionality of Unblu to share the screen of the app. This module has to be registered via UnbluApiConfiguration.register(module: UnbluCoBrowsingModuleProvider.module). To use the api of UnbluCoBrowsingModule in the application, use UnbluCoBrowsingModuleProvider.api.

    See more

    Declaration

    Swift

    public class UnbluCoBrowsingModuleProvider
  • An object that represents an area of the screen that will be obscured during a co-browsing session

    See more

    Declaration

    Swift

    public class UnbluCoBrowsingPrivateArea
  • The authentication challenge handler provided by Unblu allows you to provide certificate Data and public keys to be used in certificate pinning. You can provide as many certificates as you want. If using this class, you should initialize using UnbluAuthenticationChallengeCertificate or a dictionary containing UnbluAuthenticationChallengePolicy objects.

    Example of initialization using UnbluAuthenticationChallengeCertificate:

     do {
         let certificate = try UnbluAuthenticationChallengeCertificate(name: "certificate", extension: "cer")
         let challengeHandler = UnbluAuthenticationChallengeHandler(data: [certificate])
     } catch {
    
     }
    

    Example of initialization using UnbluAuthenticationChallengePolicy:

     do {
         let certificate = try UnbluAuthenticationChallengeCertificate(name: "certificate", extension: "cer")
         let policies = [
             "example.com": UnbluAuthenticationChallengePolicy(certificates: [certificate])
         ]
         let challengeHandler = UnbluAuthenticationChallengeHandler(policies: policies)
     } catch {
    
     }
    
    See more

    Declaration

    Swift

    public class UnbluAuthenticationChallengeHandler
    extension UnbluAuthenticationChallengeHandler: AuthenticationChallengeDelegate
  • The API to use to access unblu suite functionality like showing, opening conversations

    Before calling any other function #configureApi should be called inside the AppDelegate.

    Use the constants of UnbluEventApi to register for events and access their user info data

    A typical flow for the usage would be:

    AppDelegate#application() {
       UnbluCoreApi.instance.configureApi(UnbluApiConfiguration(unbluBaseUrl: "<base-url>", apiKey: "<apiKey>"))
    
       //register for general errors and/or also other events
       NotificationCenter.default.addObserver(self, selector: #selector(AppDelegate.handleErrorEvent(notification:)), name: Notification.Name.UnbluError, object: nil)
    
       //start the api. This could also be done later when it is needed, but it will take a while until the api is ready
       UnbluCoreApi.instance.initApi(success: {<success handling>}, failure: {<error handling>})
    }
    
    SomeViewController#showConversations() {
       //the conversations should be shown
       UnbluCoreApi.instance.showUi(visible: true)
    }
    
    See more

    Declaration

    Swift

    @objc
    open class UnbluCoreApi : NSObject
    extension UnbluCoreApi: UnbluNotificationApiDelegate
  • The default file downloader provided by Unblu. Use this when configuring the UnbluCoreSDK unless you want to provide your own file downloader. In that case, provide a file conforming to the UnbluFileDownloader protocol.

    See more

    Declaration

    Swift

    public class UnbluDefaultFileDownloadHandler : NSObject, UnbluFileDownloadHandler
    extension UnbluDefaultFileDownloadHandler: URLSessionDelegate
  • A notification center delegate which checks if a notification is from unblu or not. it will then decide to display it or not, while the app is open. This handler is always set at startapp to the current notification center. If you want to use your own implementation of UNUserNotificationCenterDelegate, you can instanciate a new instance of this class and provide a delegate to it. Then assign it to the current UNNotificationCenter. This class will then forward all requests (except for the unblu notifications) to your implementation.

    See more

    Declaration

    Swift

    public class UnbluNotificationCenterDelegate : NSObject, UNUserNotificationCenterDelegate
  • Information about a person

    See more

    Declaration

    Swift

    public class PersonInfo
  • Interface to use notifications with unblu. As Firebase Cloud Messaging (FCM) SDK is build as a static library, we can not include it here. Most functions of this api should be called for specific notification callbacks typically fired in the AppDelegate.

    Unblu will display/handle notifications as shown in the following table. Api helper to check mainly if notifications are from unblu or not

    Unblu will display/handle notifications as shown in the following table.

    | App state | New Message | Incoming Call |


    | background | show notification | show notification |


    | foreground unblu UI closed | show notification | Trigger UnbluUiEventApi.UiVisibilityRequest |


    | foreground unblu UI open | Does nothing | Does nothing |


    Whenever a notification is clicked, the event UnbluUiEventApi.UiVisibilityRequest is triggered.

    See more

    Declaration

    Swift

    @objc
    public class UnbluNotificationApi : NSObject, UnbluNotificationApiProtocol
  • When this class is passed to the CoreSDK at configuration, Unblu will store certain preferences securely in the Keychain.

    See more

    Declaration

    Swift

    public class UnbluKeychainPreferencesStorage : UnbluPreferencesStorage
  • Default implementation to store SDK preferences.

    Uses the UserDefaults.standard of the app.

    The values are not encrypted.

    See more

    Declaration

    Swift

    public class UserDefaultsPreferencesStorage : UnbluPreferencesStorage
  • A class representing configuration properties for the hidden UnbluUIWindow. Unblu uses a hidden UIWindow to make sure the connection with Unblu remains active in the background when the Unblu UI is closed.

    See more

    Declaration

    Swift

    public class UnbluHiddenUIWindowConfiguration
  • A class representing configuration properties for the main UnbluUIWindow (i.e. the UIWindow where Unblu content is displayed, such as the WebView).

    A typical use case for this would be to create an instance and pass it to UnbluApiConfiguration before the API is initialised.

    See more

    Declaration

    Swift

    public class UnbluUIWindowConfiguration
  • Button to control the visibility of the unblu UI. While the UI is visible, the superview of this button is overlayed with a semi transparent overlay. When the overlay or the button is pressed, the UI will close again.

    If there are new messages and the ui is not displayed, the button displays a badge in its upper right corner with the number of unread messages.

    This button is visible as soon as the unblu visitor/agent api is initialized.

    The button can be used programmatically or via the interface builder (create a view and set its class to UnbluUiButton).

    The button can be placed automatically or absolute. If it is constructed with only a size or empty constructor, it places itself into the lower right corner of its superview.

    See more

    Declaration

    Swift

    @IBDesignable
    @objc
    open class UnbluUiButton : UIControl
  • Custom UiWindow to better differ between unblu ui in the view hierachy. It is used for the UnbluUi

    See more

    Declaration

    Swift

    public class UnbluUiWindow : UIWindow
  • Facilitates notifications with Firebase. You should only use this if you’re not inheriting your AppDelegate from UnbluFirebaseUIApplicationDelegate.

    See more

    Declaration

    Swift

    public class UnbluFirebaseNotificationCoordinator : NSObject
    extension UnbluFirebaseNotificationCoordinator: MessagingDelegate
  • Basic implementation of UIApplicationDelegate which overrides some application notification api callbacks for easy Firebase integration. Always call the super implementation of the delegate first, before handling the functions by your own.

    See more

    Declaration

    Swift

    open class UnbluFirebaseUIApplicationDelegate : UIResponder, UIApplicationDelegate
    extension UnbluFirebaseUIApplicationDelegate: UnbluFirebaseNotificationCoordinatorDelegate
  • The API to use to access unblu suite functionality like showing, opening conversations

    Before calling any other function #configureApi should be called inside the AppDelegate.

    Use the constants of UnbluEventApi to register for events and access their user info data

    A typical flow for the usage would be:

    AppDelegate#application() {
       UnbluVisitorApi.instance.configureApi(UnbluApiConfiguration(unbluBaseUrl: "<base-url>", apiKey: "<apiKey>"))
    
       //register for general errors and/or also other events
       NotificationCenter.default.addObserver(self, selector: #selector(AppDelegate.handleErrorEvent(notification:)), name: Notification.Name.UnbluError, object: nil)
    
       //start the api. This could also be done later when it is needed, but it will take a while until the api is ready
       UnbluVisitorApi.instance.initApi(success: {<success handling>}, failure: {<error handling>})
    }
    
    SomeViewController#showConversations() {
       //the conversations should be shown
       UnbluVisitorApi.instance.showUi(visible: true)
    }
    
    See more

    Declaration

    Swift

    public class UnbluVisitorApi : UnbluCoreApi