Skip to main content
Notification Content Extension を使用すると、展開モードでの通知の外観をカスタマイズできます。ダッシュボードでテンプレートを使用してキャンペーンを作成する方法については、こちらのリンクを参照してください。 Pushtemp1
前提条件以下の手順に進む前に、プロジェクトでリッチプッシュをサポートするための App Target と Notification Service Extension の実装が完了していることを確認してください。
Notification Service Extension は、テンプレートで使用される画像、音声、または動画をダウンロードします。転送、形式、サイズの要件については、メディア要件を参照してください。

手順:

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

1. Notification Content Extension を作成する

Pushtemp2 ターゲットが作成されたら、プロンプトが表示された際に Extension のスキームをアクティブにします。 Pushtemp3 これで拡張機能がプロジェクトに追加され、作成時に指定した拡張機能名のクラスと、それに関連付けられた .plist ファイルが表示されます。

2. デプロイメントターゲットを設定する

デプロイメントターゲットをメインアプリのターゲットと同じに設定します。

3. 必要な Capabilities を追加する

Capabilities セクションで App Groups を追加し、App ターゲットと Notification Service Extension ターゲットで構成したものと同じ App Group ID を選択します。 Pushtemp4 メインターゲットでの App Group ID の設定の詳細については、ドキュメントの Set AppGroup ID セクションを参照してください。

4. Info.plist の変更

Pushtemp5 上記のように Notification Content Extension の Info.plist を変更し、NSExtensionAttributes を以下のように設定します。
注意宣言したカテゴリに応じて、UNNotificationExtensionCategory を必要な値に更新してください。

5. Storyboard の変更

以下のように、Content Extension の MainInterface.storyboard を選択し、配置されているデフォルトのラベルを削除して、ビューの背景色をクリアカラーに設定します。 Pushtemp6

6. MoEngageRichNotification の統合

Swift Package Manager による統合(推奨)

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 統合ガイドを参照してください。
CocoaPod で統合する場合は、以下のように Notification Content Extension に MoEngageRichNotification pod を含め、pod update / install コマンドを実行します。
手動統合
  • MoEngageRichNotification SDK をプロジェクトに手動で統合するには、こちらのドキュメントに従ってください。
  • App ターゲットの埋め込みバイナリに MoEngageRichNotification を追加し、Notification Content Extension ターゲットにリンクされていることを確認してください。

7. Content Extension のコード変更:

上記のように、NotificationViewController クラスで以下の変更を行います。
  1. viewDidLoad() メソッドで、Capabilities で有効にしたものと同じ App Group ID を設定します。
  2. addPushTemplate(toController:withNotification:) メソッドを呼び出して、didReceiveNotification() コールバックでテンプレートを追加します。

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

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