Environmental Requirements

The iOS Mobile Messaging SDK version 3.8.1 is compatible with Xcode 10.2.0, Swift version 5.0 (swiftlang-1001.0.69.5 clang-1001.0.46.3), and supported on iOS versions 10 through 12.

New Feature

Welcome message with quick reply options

Version 3.8 of the Mobile Messaging SDK introduces a Welcome message with quick reply options in the conversation window. When a consumer starts a new conversation, or a new customer visits the site, brands can send the first message with a list of quick replies of common intents.

You can configure the Welcome message as a simple text message with or without quick replies, for example:

Welcome to our support! What can we help you with today?

[Questions about existing account] [open a new account] [tech support]

A consumer’s quick reply selection or answer gets inserted as their first message in the conversation, which opens the conversation in the LiveEngage agent workspace.

How to enable
        //Welcome message
let welcomeMessageParam = LPWelcomeMessage(message: "Hello Mr.Bond")

        //adding options
        let options: [LPWelcomeMessage.MessageOption] = [
            LPWelcomeMessage.MessageOption(value: "music", displayName: "awesome tunes"),
            LPWelcomeMessage.MessageOption(value: "food", displayName: "Delicious food "),
        ]
        do {
            try welcomeMessageParam.set(options: options)
        } catch {
            print(error.localizedDescription)
        }

        //ConversationViewParams
        let conversationViewParams = LPConversationViewParams(conversationQuery: conversationQuery,
                                                              containerViewController: nil,
                                                              isViewOnly: false,
                                                              conversationHistoryControlParam: conversationHistoryControlParam,
                                                              welcomeMessage: welcomeMessageParam)
//show conversation
LPMessagingSDK.instance.showConversation(conversationViewParams,  authenticationParams: authenticationParams)

Limitations You can configure up to 24 quick reply options for the user to chose.

  • You have a maximum of 25 characters for your title, but anything over displays an ellipsis after the 22nd character. When building your client, you have control over the character limit for the title.

  • When the consumer ends the conversation, the window remains open, and the Welcome message appears again.

  • Quick reply messages do not get recorded in the conversation history.

  • The conversational metadata (ExternalId) does not get populated.

"metadata": [
  {
    "type": "ExternalId",
    "id": "Yes-1234"
  }
]

Bug Fixes

  • When the unreadMessagesDividerEnabled attribute equaled false, the conversation window did not jump/scroll to the latest messages received by the agent as expected.

    By default, the Unread Message Divider separator appears in the message view. When enabled, this feature does not prevent the badge or message text from displaying on the Scroll to Bottom button. Instead, the Unread Message Divider system message displays above the unread messages within the view of the user when returning to the conversation view. When disabled, the separator does not appear, and the unread message badge count displays on the Scroll to Bottom button.

  • Fallback to Signup Flow still existed. The bug prevented users from starting an authenticated conversation, and instead, the conversation started an unauthenticated visitor mode chat.

  • Send Image (From Gallery) failed. The bug prevented users from uploading images larger than 3MB, resulting in a ‘file too large’ message. Version 3.8 of the Mobile Messaging SDK increased the size limit to 5MB.

  • On iOS 12.2 Swift 5, the conversation screen did not show the sent or received messages and the margins appeared between messages.

  • Accessibility: voice over read old conversations. The bug prevented the voice over feature, when enabled, to read the current conversation, and instead, skipping back to old conversations.

  • When trying to reconnect with a JWT after the initial token expired, an INVALID JWT warning appeared and showed a black bar even though the conversation continued without error.

  • Before the token expired, the agent did not receive one or more messages resulting in data loss. The bug prevented messages from being sent regardless of the token expiration.

  • For iOS versions lower than 12. When starting an unauthenticated conversation then backgrounding the app and then foregrounding it again, the loading screen remained displayed. The bug prevented users from going in and out of the conversation without issue.

iOS API Updates

LPAMSFacade / LPMessagingAPI

New for 3.8

public class func createWelcomeLocalMessage(_ dialog: Dialog, welcomeMessage: LPWelcomeMessage, overrideTime: Date = Date()) -> Message?

Changes for 3.7.1 (DEPRECATED)

public class func createWelcomeLocalMessage(_ dialog: Dialog, overrideTime: Date = Date()) -> Message?

LPConversationViewParams

New for 3.8

public init(conversationQuery: ConversationParamProtocol,
                containerViewController: UIViewController? = nil,
                isViewOnly: Bool = false,
                conversationHistoryControlParam: LPConversationHistoryControlParam = LPConversationHistoryControlParam(historyConversationsStateToDisplay: .none),
                welcomeMessage: LPWelcomeMessage = LPWelcomeMessage(message: nil))

Changes for 3.7.1 (DEPRECATED)

public init(conversationQuery: ConversationParamProtocol,
                containerViewController: UIViewController? = nil,
                isViewOnly: Bool = false,
		conversationHistoryControlParam: LPConversationHistoryControlParam = LPConversationHistoryControlParam(historyConversationsStateToDisplay: .none))
)})

MAX_SWIFT_ALLOWED_UPLOAD_PHOTO_SIZE_IN_BYTE

New for 3.8

MAX_SWIFT_ALLOWED_UPLOAD_PHOTO_SIZE_IN_BYTE = 5MB

Changes for 3.7.1

MAX_ALLOWED_UPLOAD_PHOTO_SIZE_IN_MB = 3MB