Inbox
Use the SDK to easily incorporate inbox functionality into your mobile app. All active inbox messages download to the mobile device each time the app is brought to the foreground.
Marketers can create an Inbox Only
message to deliver the message silently to the inbox or an Inbox+Alert
message to include a push notification with the inbox message.
Implement Inbox Functionality
Find convenience methods for refreshing the inbox and getting, reading, and deleting messages in InboxMessages Methods.
To display inbox-only messages sent from Marketing Cloud, use the UITableView datasource provided by the SDK in a UIViewController. Your UIViewController creates an inbox in your app to display these messages. The SDK adds messages to the datasource after they are downloaded.
Manage the selection of rows in your tableview using the basic UITableView delegate provided by the SDK. Otherwise, your app must implement a UITableView delegate.
Example: Inbox Implementation
This example includes a simple implementation of an inbox using the SDK as the datasource and delegate.
For additional control, presentation, and usability, implement your own datasource and delegate using the support offered by the SDK.
Inbox Messaging Public Properties
SDK offers the following convenience methods: getAllMessages
, getUnreadMessages
, getReadMessages
and getDeletedMessages
. Each method returns an Array of dictionary
(e.g. [String: AnyObject])
Below are the public properties within the dictionary that can be used by the consuming application
Key | Value |
---|---|
id | String? |
alert | String? |
subject | String? |
startDateUtc | Date? |
endDateUtc | Date? |
custom | String? |
name | String? |
title | String? |
url | String? |
deleted | Bool |
read | Bool |
sound | String? |
subtitle | String? |
The remaining properties within the dictionary (e.g. contentType, messageDeleted, messageHash, requestId, statusDirty
) are used internally by the SDK. It is not recommended to use these within a consuming application, as they are subject to change.
Alert + Inbox Messages
The Alert + Inbox was designed to allow a tap on an Inbox Push Notification to take user to an Inbox message, where the Inbox data is added to the Push notification payload. Due to payload size restrictions from Apple, all the Inbox fields cannot be added to the Push payload
, but the user can be redirected to the message without any issues and all fields are available when returned to the Inbox.
The fields sendDateUtc
, startDateUtc
, endDateUtc
, and subject
along with statusDirty
are not available initially in Alert + Inbox Message Dictionary.
Mark Inbox Read on Notification clicked for Alert + Inbox Message
When configuring the SDK, enable or disable the setMarkMessageReadOnInboxNotificationOpen
feature in the PushConfigBuilder
to automatically mark an inbox message as read upon the user tapping on the notification.
When is the Inbox Messages refreshed ?
Inbox Messages are refreshed
-
When the application comes to the foreground
-
When triggered by an Inbox + Alert
-
When the SDK’s “refresh inbox” method is called manually by the consuming application
Use Case
Sort Inbox Messages by Sent Date
To sort inbox messages in your custom inbox implementation, use the value of sendDateUtc
from the inbox message returned by sfmc_getAllMessages
and other getters.
To sort your UITableView data source array of Inbox messages, use an NSSortDescriptor for the key sendDateUtc
. Sort your data source array with this descriptor, and then reload your UITableView.
Refresh Inbox Messages When Application in Foreground
When the consuming application is in foreground
and an Alert + Inbox notification is received, it is recommended that the consuming application call the refreshMessages
method to retrieve the inbox messages so that it will be reflected on the UI. See LearningApp for sample implementation.