Skip to main content
高度なカスタマイズアプリケーションで MoEngage SDK のデフォルトの動作をカスタマイズまたは変更したい高度なユースケースをサポートします。
MoEngage SDK では、クライアントアプリケーションで必要に応じて通知の表示をカスタマイズしたり、通知の動作を拡張/カスタマイズしたりできます。可能なカスタマイズの例としては、通知を表示するかどうかの判断や、NotificationCompat.Builder オブジェクトの調整などがあります。そのためには、MoEngage SDK が提供する PushMessageListener というクラスを拡張し、このクラスのインスタンスを MoEngage SDK に渡す必要があります。これが完了すると、要件に応じてデフォルトの実装をオーバーライドできます。上記の手順を詳しく見ていきましょう。

PushMessageListener の拡張

通知をカスタマイズするためにまず必要なのは、PushMessageListener を拡張するクラスを作成することです。ここではこのクラスを CustomPushMessageListener と呼びます(説明のための名前であり、任意のクラス名を使用できます)。このクラスの基本構造は以下のようになります。

CustomPushMessageListener のインスタンスを MoEngage SDK に渡す

Application クラスの onCreate() で、 MoEPushHelper.getInstance().registerMessageListener() を使用して CustomPushMessageListener のインスタンスを MoEngage SDK に渡します。
リスナーは Activity ではなく Application.onCreate() で登録してください。プッシュのコールバックはアプリがバックグラウンドにある場合や終了している場合に発生するため、Activity レベルで登録すると、Activity がまだ生成されていないためコールバックを受け取れません。

通知の表示を任意で制御する

通知をユーザーに表示するかどうかを制御するには、上記で作成した CustomPushMessageListener クラスで isNotificationRequired() をオーバーライドする必要があります。
オーバーライドして通知を表示するかどうかに応じて、実装は true または false を返す必要があります。
実装の構造は以下のとおりです。
このメソッドが false を返すと、この通知は SDK によって破棄されます。つまり、通知はデバイスに表示されず、インプレッションもトラッキングされません。
詳細については、API リファレンスを参照してください。

通知受信コールバック

プッシュを受信するたびにコールバックを受け取るには、CustomPushMessageListener クラスで onNotificationReceived() をオーバーライドします。

通知クリックコールバック

プッシュがクリックされるたびにコールバックを受け取るには、通知受信コールバックで説明したように作成した CustomPushMessageListener クラスで onNotificationClicked() をオーバーライドします。
このメソッドはコールバックを兼ねており、リダイレクトの処理にも使用できます。通知クリック時のリダイレクトを自身で処理する場合、メソッドは true を返し、それ以外の場合は false を返す必要があります。

通知クリアコールバック

プッシュがクリアされるたびにコールバックを受け取るには、上記で作成した CustomPushMessageListener クラスで onNotificationCleared() をオーバーライドします。

アクションボタンクリック時のカスタムアクション

アクションボタンのクリック時にカスタムアクションを使用するには、上記で作成した CustomPushMessageListener クラスで handleCustomAction() をオーバーライドします。

通知のカスタマイズ

通知オブジェクトをさらにカスタマイズするには、customizeNotification() をオーバーライドします。これにより、バイブレーションパターンや LED の色などの追加設定を追加または変更できます。デフォルトの設定が確実に適用されるように、カスタマイズを追加する前に super メソッドを呼び出す必要がある点に注意してください。

Notification Builder のカスタマイズ

SDK には、必要に応じて notification builder オブジェクトをカスタマイズするための customizeNotificationBuilder() コールバックが用意されています。この機能により、開発者はチャネル ID や自動消去時間など、notification builder のさまざまなプロパティを更新できます。デフォルトの設定が確実に適用されるように、カスタマイズを追加する前に super メソッドを呼び出す必要がある点に注意してください。

Self-handled 通知受信コールバック

  PushMessageListener を登録する SDK コールバック方式を使用する場合、MoEngage SDK は self-handled 通知専用のメソッドを提供します。
SDK バージョン: self-handled 通知のチェックは、Android SDK バージョン 14.06.00 以降でサポートされています。インプレッションの自動トラッキング: このコールバックを使用する場合、MoEngage SDK は通知のインプレッションを自動的にトラッキングします。logNotificationReceived を呼び出す必要はありません。表示の処理と、カスタム UI を表示する場合のクリックの手動トラッキングのみを行う必要があります。
このコールバックを受け取るには、カスタムリスナークラスで onSelfHandledNotificationReceived() をオーバーライドします。
Bundle で受信するペイロードの構造の詳細については、Background Update Templates を参照してください。