InboxMessageの読み込み遅延について

はじめに

Salesforceのプッシュ通知機能でInboxMessageを送った際にInboxMessages取得に遅延が発生し、取得できないことがあります。

MarketingCroundSDKのドキュメントを見ると以下の2つのNotificationが用意されているようでした。

SFMCInboxMessagesRefreshCompleteNotification:更新プロセスが完了したときに通知されます
SFMCInboxMessagesNewInboxMessagesNotification:新しい受信ボックスメッセージがある場合に投稿されます

https://salesforce-marketingcloud.github.io/MarketingCloudSDK-iOS/appledoc/Classes/MarketingCloudSDK.html#//api/name/sfmc_refreshMessages

完了の受け取り

こちらの完了通知は新規のinboxMessageを受け取っていない時にも通知が飛びます。

その為、取得したInboxMessageをViewに反映させている場合は、更新完了を待ってからViewへの反映を行うのが良いかと思います。

NotificationCenter.default.addObserver(self,
                                       selector: #selector(inboxMessagesRefreshComplete(_:)),
                                       name: NSNotification.Name(rawValue: "SFMCInboxMessagesNewInboxMessagesNotification"),
                                       object: nil)

@objc func inboxMessagesRefreshComplete(_ notification: Notification?) {
   //viewをreloadする処理
}

参考文献

MarketingCloudSDK Class Reference