前提条件
開始する前に、以下の設定を完了してください。- アプリケーション用の Firebase プロジェクトを作成し、
google-services.json設定ファイルを追加します。Firebase Android セットアップガイドを参照してください。 com.google.firebase:firebase-messaging25.1.2 以上を使用してください。これは Firebase Installation ID に必要な最小バージョンです。- FCM の認証情報を生成し、MoEngage ダッシュボードに追加します。FCM 認証およびプッシュの設定を参照してください。
概要
MoEngage Android SDK 15.03.00 は、Firebase Installation ID を使用してデバイスをプッシュに登録します。 Installation ID を生成するコンポーネントに応じて、2 つのフローを利用できます。- フロー 1: MoEngage が Installation ID の生成を処理するでは、MoEngage SDK が Installation ID を生成して通知を表示するために必要な手順について説明します。
- フロー 2: アプリケーションが Installation ID の生成を処理するでは、アプリケーションが Installation ID を生成して MoEngage SDK に渡すために必要な手順について説明します。
フロー 1: MoEngage が Installation ID の生成を処理する
ステップ 1: MoEngage Messaging Service を宣言する
マニフェストファイルにMoEFireBaseMessagingService を追加します。
ステップ 2: Firebase Installation ID を有効にする
マニフェストファイルに以下のメタデータを追加します。Installation ID の登録(オプション)
SDK が Installation ID を登録するように、MoEngage SDK の初期化が完了した後に registerForInstallationId() API を呼び出します。この呼び出しは、以下の場合にのみ必要です。- アプリケーションで Firebase の自動初期化が無効になっている場合。自動初期化の防止に関する Firebase のドキュメントを参照してください。
- MoEngage SDK の初期化が遅延する場合。たとえば、アプリケーションが Application クラスの
onCreate()メソッドではなくワーカースレッドで SDK を初期化する場合です。
Installation ID の取得(オプション)
アプリケーションで MoEngage が生成した Installation ID を読み取る必要がある場合は、以下のいずれかのオプションを適用します。オプション 1: Installation ID を非同期で取得する
addInstallationIdListener() API を使用して、Application クラスで InstallationIdAvailableListener を登録します。SDK は、リスナーの登録後に生成または更新した Installation ID に対してのみコールバックをトリガーします。 コールバックの受信を停止するには、removeInstallationIdListener() を呼び出します。オプション 2: Installation ID を同期的に取得する
ワーカースレッドから getInstallationId() API を呼び出します。呼び出し時に Installation ID が利用できない場合、API はnull を返します。
MoEngage 以外のペイロードのプッシュ表示(オプション)
アプリケーションが MoEngage 以外から送信された通知を処理する場合は、このコールバックを実装します。マニフェストファイルで SDK のサービスを宣言すると、SDK は MoEngage プラットフォーム以外のサーバーから受信したプッシュペイロードごとにコールバックを提供します。 NonMoEngagePushListener インターフェースを実装し、onCreate メソッドで MoEFireBaseHelper.getInstance().addNonMoEngagePushListener() を使用して登録します。 アプリケーションがバックグラウンドにある間も SDK がコールバックを呼び出す可能性があるため、コールバックは Application クラスのonCreate() メソッドで登録してください。
フロー 2: アプリケーションが Installation ID の生成を処理する
MoEngage SDK が Installation ID を生成する場合は、このセクションをスキップしてください。ステップ 1: MoEngage のプッシュトークン登録をオプトアウトする
MoEngage SDK はデフォルトでプッシュに登録します。アプリケーションが Installation ID を生成する場合は、まず MoEngage の登録をオプトアウトしてください。 MoEngage.Builder オブジェクトの configureFcm() API を使用して、トークンの登録を無効にします。ステップ 2: Installation ID を MoEngage SDK に渡す
MoEngage プラットフォームがデバイスに通知を配信するには Installation ID が必要なため、アプリケーションは passInstallationId() API を使用して Installation ID を MoEngage SDK に渡す必要があります。ステップ 3: プッシュペイロードを MoEngage SDK に渡す
SDK はリッチプッシュ通知を含む通知をレンダリングするため、アプリケーションが独自のサービスを宣言している場合でも、MoEngage プラットフォームからのペイロードを MoEngage SDK に渡してください。 Firebase サービスのonMessageReceived() メソッドから passPushPayload() API を呼び出します。渡す前に、isFromMoEngagePlatform() API を使用して、ペイロードが MoEngage プラットフォームから送信されたものかどうかを確認してください。
リッチランディング
リッチランディングページは、プッシュキャンペーンからアプリケーション内で Web URL を開きます。どのコンポーネントが Installation ID を生成するかに関係なく、リッチランディングページを表示するにはこの手順が必要です。以下の宣言は、現在の SDK バージョンに含まれています。
MoEActivity の親 Activity を変更する必要がある場合にのみ追加してください。