Skip to main content
MoEngage iOS SDK バージョン 6.2.0 および MORichNotification バージョン 4.0.0 以降、プッシュテンプレートがサポートされ、展開モードでの通知の見た目をカスタマイズできるようになりました。この機能は iOS 12.0 以上でサポートされています。ダッシュボードでテンプレートを使用してキャンペーンを作成する方法については、こちらのリンクを参照してください。
iOS 15.0 アップデートiOS 15.0 のアップデートに伴い、MORichNotification バージョン 5.2.0 をリリースしました。iOS 15.0 以上では、標準の通知レイアウトに合わせて、コンテンツを上部に、メディアを下部に表示するようにレイアウトを更新しています。
Notification Content Extension によってレンダリングされた展開プッシュ通知テンプレートのアニメーションプレビュー
以下の手順に進む前に、プロジェクトでリッチプッシュをサポートするための App Target と Notification Service Extension の実装が完了していることを確認してください。

手順:

これらのカスタムプッシュテンプレートをサポートするには、プロジェクトに Notification Content Extension が必要です。以下の手順に従って Content Extension を作成し、MoEngage のテンプレートをサポートするようにセットアップします。

1. Notification Content Extension の作成

Xcode で新しいターゲットを追加する際に Notification Content Extension テンプレートを選択する Xcode で Notification Content Extension ターゲットに名前を付けて作成する ターゲットが作成されたら、プロンプトが表示された際に Extension のスキームをアクティブにします。その後、Extension がプロジェクトに追加され、作成時に指定した Extension 名のクラスと、それに関連付けられた .plist ファイルが表示されます。

2. デプロイメントターゲットの設定と必要なフレームワークの追加

この機能は iOS 12.0 からサポートされているため、デプロイメントターゲットを iOS 12.0 以上に設定します。その後、以下に示すように Frameworks and Libraries に UserNotifications.framework と UserNotificationsUI.framework を追加します。 Xcode で Content Extension ターゲットに UserNotifications.framework と UserNotificationsUI.framework を追加する

3. 必要な Capability の追加

Capabilities セクションで App Groups を追加し、アプリターゲットと Notification Service Extension ターゲットで構成したものと同じ App Group ID を選択します。 Xcode で Content Extension ターゲットの App Groups Capability を有効にする
App Group ID の推奨事項MoEngage 用に、group.{app bundle id}.MoEngage という形式で別の App Group ID を設定することを推奨します。また、MoEngage を使用しているすべてのターゲットで同じ App Group ID が有効になっていることを確認してください。

4. Info.plist の変更

Content Extension の Info.plist における NSExtensionAttributes の構成 上記に示すように、Notification Content Extension の Info.plist を変更し、NSExtensionAttributes を次のように設定します。

5. Storyboard の変更

Content Extension の MainInterface.storyboard を選択し、そこに配置されているデフォルトのラベルを削除して、以下に示すようにビューの背景色を clear color に設定します。 デフォルトのラベルを削除し、ビューの背景を clear color に設定した MainInterface.storyboard

6. MoEngageRichNotification の統合

CocoaPods による統合

CocoaPods を使用して統合するには、以下に示すように Notification Content Extension に MoEngageRichNotification pod を含め、pod update / install コマンドを実行します。

Swift Package Manager による統合

SPM を使用して統合するには、次の GitHub の URL リンクを使用し、ブランチを master に、またはバージョンを 6.2.0 以上に設定します。https://github.com/moengage/MoEngage-iOS-RichNotification.git
手動統合
  • MoEngageRichNotification SDK をプロジェクトに手動で統合するには、こちらのドキュメントに従ってください。
  • MoEngageRichNotification をアプリターゲットの Embedded Binaries に追加し、Notification Content Extension ターゲットにリンクされていることを確認します。

7. Content Extension でのコードの変更:

上記に示すように、NotificationViewController クラスで次の変更を行います。
  1. viewDidLoad() メソッドで、Capabilities で有効にしたものと同じ App Group ID を設定します。[Recommended: group.{app bundle id}.MoEngage]
  2. didReceiveNotification() コールバックで addPushTemplateToController:withNotification: メソッドを呼び出して、テンプレートを追加します。

8. アプリでの通知クリックのコールバック:

Simple Image Carousel 通知の場合、ユーザーがどのスライドをクリックしたかを知るには、MOMessagingDelegate を利用して notificationClicked(withScreenName: andKVPairs:) コールバックを取得し、クリックされたスライドに設定されているキーと値のペアと画面名を取得します。以下の例を参照してください。ここでは AppDelegate でコールバックを登録しています。
このコールバックは、通常の通知と Stylized Basic 通知でも呼び出されるため、それらの場合にも利用できます。