Enumerations

The following enumerations are used in imiconnect iOS SDK.

ICLogType

This enumeration exposes enumeration data with the type of logs that will be logged.

Value

Description

ICLogTypeNone

No log will be displayed/recorded.

ICLogTypeDebug

A large number of logs will be logged that can help to debug.

ICLogTypeProduction

Logs will be kept at a minimum level.

ICLogTarget

This enumeration represents the target on which the logs will be displayed or recorded.

Value

Description

ICLogTargetConsole

Logs will be displayed in the console.

ICLogTargetFile

Logs will be recorded in a file.

ICConnectionStatus

This enumeration describes different connection status between the SDK and the Real-Time Messaging server.

Value

Description

ICConnectionStatusNone

No connection attempt has been made.

ICConnectionStatusConnecting

The SDK is attempting to establish a connection with the Real-Time Messaging server.

ICConnectionStatusConnected

The SDK is connected and allows you to publish and receive messages.

ICConnectionStatusRefused

The connection is refused by the Real-Time Messaging server.

ICConnectionStatusClosed

The SDK is disconnected from the Real-Time Messaging server.

ICConnectionStatusError

A connection error has occurred while connecting to the Real-Time Messaging server.

ICErrorCode

This enumeration describes different error codes of the SDK.

Value

Description

ICErrorCodeNotInitialized

Returned when trying to access a feature without initializing the SDK.

ICErrorCodeAlreadyInitialized

Returned when trying to initialize the SDK when it is already initialized.

ICErrorCodeNotRegistered

Returned when trying to access a feature without registering a user.

ICErrorCodeFeatureNotSupported

Returned when trying to access a feature that is not supported by the app.

ICErrorCodeInvalidParameterValue

Returned when a required parameter is not passed or an invalid value has been passed to a method.

ICErrorCodeNotConnected

Returned when trying to communicate with the RTM server without establishing a connection.

ICErrorCodeRegistrationFailure

Returned when registration is failed.

ICErrorCodeInvalidResponse

Returned when a response from the server is invalid.

ICErrorCodeTokenInvalid = 38

The token is not in the expected format.

ICErrorCodeTokenUnauthorized = 39

The token does not provide authorization to access the requested resource.

ICErrorCodeTokenExpired = 40

The token has expired.

ICErrorCodeTokenRequired = 41

The token is required.

ICMessageChannel

This enumeration describes the supported message channels.

Value

Description

ICMessageChannelPush

The incoming message comes from the Push notification channel.

ICMessageChannelRealTime

The incoming message comes from Real Time Messaging channel.

ICMessageType

This enumeration describes the message types.

Value

Description

ICMessageTypeBasic

A standard non-interactive message.

ICMessageTypeInteractive

A message that contains pre-built out-of-the-box interactive elements. This type of message typically causes actions to occur on the device in response to notification buttons.

ICMessageTypeAlert

Message data is alert from connect platform.

ICMessageTypeDeliveryReceipt

Message data is a DeliveryReceipt, TransactionId is available and can be used to match the receipt to the original message.

ICMessageTypeMessage

Standard Push or RTM.

ICMessageTypeNotification

Represents the notification part of an RTM.

ICMessageTypeReadReceipt

Message data is a ReadReceipt, only TransactionId is available and can be used to match the receipt to the original message.

ICMessageTypeRepublish

The message is a republish of a MO, all data from the original message is available.

ICMessageTypeTypingStart

Message data is a TypingStart from the connect platform end.

ICMessageTypeTypingStop

Message data is a TypingStop from the connect platform end.

📘

Note

Message field could be null for below message types:

  • ICMessageTypeDeliveryReceipt
  • ICMessageTypeReadReceipt
  • ICMessageTypeTypingStart
  • ICMessageTypeTypingStop

ICThreadType

Value

Description

ICThreadTypeConversation

The thread is a conversation, the users can send messages on this thread.

ICThreadTypeAnnouncement

The thread is an announcement thread, the users can only receive messages on this thread.

ICMessageSynchronizationMode

Value

Description

ICMessageSynchronizationModeFull

Synchronization should synchronize all available data.

ICMessageSynchronizationModeLimited

Synchronization should occur based on policy limits.

ICMessageSynchronizationModeNone

Synchronization should be disabled.

ICMessageStatus

Value

Description

ICMessageStatusNone

None is the default message status.

ICMessageStatusSent

Message sent successfully to connect the platform.

ICMessageStatusDelivered

Message delivered to the user device.

ICMessageStatusRead

The message read by the user device.

ICThreadstatus

Value

Description

ICThreadStatusActive

The thread is active. The user can receive (and send if the thread type is a conversation) messages on this thread

ICThreadStatusClosed

The thread is closed. The user cannot receive (and send if the thread type is a conversation) any messages on this thread

iOS SDK Single Binary Changes

The below section describes the changes to convert the SDK to Single Binary which supports all the current environments.

ICEnvironment

This version of SDK has a new enum ICEnvironment

Value

Description

ICEnvironmentUK

It denotes the UK server environment

ICEnvironmentUS

It denotes the US server environment

ICEnvironmentCA

It denotes the CANADA server environment

ICEnvironmentIN

It denotes the INDIA server environment

ICEnvironmentTC

It denotes the TELECITY server environment

ICEnvironmentAZURE_US

It denotes the AZURE US server environment

ICEnvironmentLDN

It denotes the LONDON server environment

Form Template Message Type Changes

The following new enumerations added in this version of SDK.

ICFormFieldType

This enumeration describes the supported Form Fields.

Value

Description

ICFormFieldTypeText

It denotes the Text type form field

ICFormFieldTypeName

It denotes the Name type form field

ICFormFieldTypeEmail

It denotes the Email type form field

ICFormFieldTypeInteger

It denotes the Integer type form field

ICFormFieldTypeDecimal

It denotes the Decimal type form field

ICFormFieldTypeDate

It denotes the Date type form field

ICFormFieldTypeDropdown

It denotes the Dropdown type form field

ICTemplateType:

This enumeration describes the supported Template Types.

Value

Description

ICInteractiveDataTypeFormResponse

It denotes the Form Response type Interactive data

Classes

The following new classes added in this version of SDK.

ICTemplateAttachment

This class exposes the data related to a Template Attachment.

Methods:

typeFromString:typeString:

This method Converts the Field Type String to ICTemplateType.

Syntax: + (ICTemplateType)typeFromString:(NSString *)typeString;

Parameters:

Parameter

Type

Description

typeString

NSString

Specifies the template type

Return Value: Returns the ICTemplateType value equals to typeString passed to this method.

Sample Code:

ICTemplateType templateType  = [ICTemplateAttachment typeFromString:@”form”];

stringFromType:type:

This method Converts the ICTemplateType to String.

Syntax: + (NSString *)stringFromType:( ICTemplateType)type;

Parameter

Type

Description

type

ICTemplateType

Specifies the template type

Return Value: Returns the string value equals to ICTemplateType passed to this method.

Sample Code:

NSString *templateType  = [ICTemplateAttachment stringFromType: ICTemplateTypeForm];

ICFormTemplateAttachment

This class exposes the data related to a Form Template.

Properties:

Property

Description

@property (nonatomic) NSString *formTitle;

The Form Title

@property (nonatomic) NSArray *formFields;

The Form Fields

ICFormField

This class exposes the data related to a Form Field of a Form template.

Properties:

Property

Description

@property (nonatomic, readonly) ICFormFieldType formFieldType;

The Form Field id

@property (nonatomic, readonly) NSString *fieldName;

The Form Field Name

@property (nonatomic, readwrite) NSString *fieldValue;

The Form Field Value

@property (nonatomic, readonly) NSString *fieldLabel;

The Form Field Label

@property (nonatomic, readonly) NSString *fieldDescription;

The Form Field Description

@property (nonatomic, readonly) BOOL isMandatory;

The Form Field is Mandatory

@property (nonatomic, readonly) NSArray *dropdownOptions;

The Form Field Dropdown Options

Methods:

typeFromString:typeString:

This method Converts the Field Type String to ICFormFieldType.

Syntax: + (ICFormFieldType)typeFromString:(NSString *)typeString;

Parameters:

Parameter

Type

Description

typeString

NSString

Specifies the form field type

Return Value: Returns the ICFormFieldType value equals to typeString passed to this method.

Sample Code:

ICFormFieldType formFieldType  = [ICFormField typeFromString:@”email”];

stringFromType:type:

This method Converts the ICFormFieldType to String.

Syntax: + (NSString *)stringFromType:(ICFormFieldType)type;

Parameters:

Parameter

Type

Description

type

ICFormFieldType

Specifies the form field type

Return Value: Returns the string value equals to ICFormFieldType passed to this method.

Sample Code:

NSString *formFieldType  = [ICFormField stringFromType: ICFormFieldTypeEmail];

ICInteractiveData

This class exposes the data related to the form response submitted by users.

Properties:

Property

Description

@property (nonatomic, readonly) ICInteractiveDataType type;

The Type of the InteractiveData

@property (nonatomic, readonly) NSDate *submittedAt;

The date when the Data has been submitted

@property (nonatomic) NSMutableDictionary *payLoad;

The Interactivedata Payload

@property (nonatomic, readonly) NSString *tid;

The transaction id for Form Data response