高度なカスタマイズアプリケーションで MoEngage SDK のデフォルトの動作をカスタマイズまたは変更したい高度なユースケースをサポートします。
PushMessageListener の拡張
通知をカスタマイズするためにまず必要なのは、PushMessageListener を拡張するクラスを作成することです。ここではこのクラスを CustomPushMessageListener と呼びます(説明のための名前であり、任意のクラス名を使用できます)。このクラスの基本構造は以下のようになります。CustomPushMessageListener のインスタンスを MoEngage SDK に渡す
Application クラスの onCreate() で、 MoEPushHelper.getInstance().registerMessageListener() を使用して CustomPushMessageListener のインスタンスを MoEngage SDK に渡します。
通知の表示を任意で制御する
通知をユーザーに表示するかどうかを制御するには、上記で作成した CustomPushMessageListener クラスで isNotificationRequired() をオーバーライドする必要があります。オーバーライドして通知を表示するかどうかに応じて、実装は true または false を返す必要があります。 実装の構造は以下のとおりです。
このメソッドが false を返すと、この通知は SDK によって破棄されます。つまり、通知はデバイスに表示されず、インプレッションもトラッキングされません。
通知受信コールバック
プッシュを受信するたびにコールバックを受け取るには、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 を参照してください。