Skip to main content
Inboxは、既読および未読のプッシュ通知を含むドロップインのビューコントローラーです。ユーザーが通知をクリックしていない場合でも、通知はInboxに表示され、未読状態であることを示すためにハイライトされます。ビューのタイトルやルックアンドフィールもカスタマイズできます。 Inboxビューコントローラーは、独自のコントローラーに子ビューコントローラーとして追加されます。これにより、同じコントローラーでデリゲートのコールバックを受け取ることができ、それをさらに別の画面へのナビゲーションに利用できます。

SDKのインストール

Swift Package Managerを使用したインストール

MoEngageInboxは、SDKバージョン1.2.0からSPMでサポートされています。統合するには、SDKバージョン9.23.0以上の場合はGitHubのURL https://github.com/moengage/apple-sdk.git を、その他のSDKバージョンの場合は https://github.com/moengage/MoEngage-iOS-SDK.git を使用し、ブランチをmasterまたは必要なバージョンに設定します。

CocoaPodを使用したインストール

情報CocoaPodsは非推奨になりつつあります。MoEngageでは、すべての新規統合にSwift Package Managerを使用することを推奨しています。CocoaPodsの詳細については、CocoaPods統合ガイドを参照してください。
MoEngage-iOS-SDKバージョン8.2.0から、InboxモジュールはSDKから分離され、MoEngageInboxという別のモジュールになりました。そのため、個別に追加する必要があります。 以下に示すように、Podfileに依存関係を追加してMoEngageInboxフレームワークを統合します。
次に、pod install を実行してフレームワークをインストールします。

Inboxセットアップのチェックリスト

Inboxモジュールを使用する前に、以下の項目が実装されていることを確認してください。
  1. MoEngage-iOS-SDKをバージョン >= 9.0.0 に更新します。
  2. バージョン >= 2.0.0 のMoEngageInboxモジュールを統合します。
  3. Notification Service Extensionを実装し、MoEngageRichNotifcation(>= 7.0.0)を統合します。
  4. App Target のCapabilitiesでAppGroupIDが設定され、同じIDがSDKに渡されていること。
  5. Notification Service Extension Target のCapabilitiesでAppGroupIDが設定され、同じIDがMoEngageRichNotification SDKに渡されていること。
App Group IDApp Target と Notification Service Extension Target の両方に設定されたApp Group IDが 同じ であることを確認してください。

Inboxの使用方法

  1. View Controllerで MoEngageInbox をインポートします。
  2. プロパティを作成します - @property(nonatomic, strong) MoEngageInboxViewController *inboxController.
  3. viewDidLoadに以下のコードを追加して、MoEngageInboxViewControllerを取得します。

MoEngageInboxViewControllerのPush/Present

SDKに画面遷移を処理させるには、次のいずれかのメソッドを使用します。

MoEngageInboxViewControllerDelegateのメソッド

Inboxモジュールからコールバックを受け取るには、MoEngageInboxViewControllerDelegateプロトコルを使用します。
以下の関数でデリゲートをパラメーターとして渡して、MoEngageInboxViewControllerDelegateを設定します。

外観のカスタマイズ

  1. コントローラーをpush/presentできます。コントローラーをpushする場合は、View Controllerを閉じるために「Done」または「Cancel」ボタンをUIBarButtonItemとして追加してください。
  2. Inboxのセルに対するクリックアクションのデリゲートコールバックを受け取ることができます。
  3. このデータは、イベントのトラッキングや別の画面へのナビゲーションに使用できます。
  4. 次のメソッドを使用して、Inboxビューコントローラーのルックアンドフィールをカスタマイズできます。

自己処理型Inbox

Inboxメッセージの取得:

Inboxを完全にカスタマイズできるようになりました。Inboxメッセージを取得するには、getInboxMessages(forAppID:withCompletionBlock:)を使用します。

通知を既読にする:

メソッドの呼び出し時に通知のキャンペーンIDを指定することで、markInboxNotificationClicked(withCampaignID:forAppID:completionHandler)メソッドを使用してInbox通知を既読にできます。このメソッドは、isRead キーがtrueに設定された更新済みの通知ペイロードを返します。

Inbox通知のクリックのトラッキング:

メソッドの呼び出し時に通知のキャンペーンIDを指定することで、trackInboxClick(withCampaignID:forAppID:)メソッドを使用してInbox通知のクリックをトラッキングできます。

Inboxのクリックの処理:

Inboxのエントリーをクリックしたときに、通知に関連付けられたSDKがサポートするアクション(リッチランディング、ディープリンク、クーポンコードなど)を実行する場合は、以下に示すようにprocessInboxNotification(withCampaignID:forAppID:)メソッドを呼び出します。

未読通知数の取得:

以下に示すように、getUnreadNotificationCount(forAppID:withCompletionBlock:)メソッドを使用して、Inboxから未読通知数を取得できます。

メッセージの削除

Inboxに現在保存されているすべてのメッセージを削除するには、removeInboxMessages(forAppID:completionHandler:)メソッドを使用します。
キャンペーンIDを渡してInboxに保存されている単一のメッセージを削除するには、removeInboxMessage(withCampaignID:forAppID:completionHandler:)メソッドを使用します。

SDKバージョン4.4.0で非推奨になったメソッド

SDKバージョン4.4.0でInboxモジュールを刷新しました。これに伴い、MOInboxPushDataModel クラスを非推奨とし、通知のモデルオブジェクトとして MOInboxModel クラスのインスタンスを使用するようにしました。また、以下に示すように、MOInbox の既存のメソッドの一部も非推奨になりました。
これらのメソッドはSDKバージョン5.0.0で削除されるため、すべてのInbox機能が新しいAPIを使用するように更新されていることを確認してください。
情報MoEngage SDKは、アプリが初めて起動されたとき、またはバックグラウンドからフォアグラウンドに戻ったときにのみ、プッシュデータを通知センターと同期します。