メインコンテンツへスキップ
cards-ui-compose モジュールは、MoEngage Cards フィードを Jetpack Compose のユーザーインターフェースとして提供します。このモジュールは、カードリスト、カテゴリタブ、プルして更新 (pull to refresh)、空の状態を描画し、クリックのトラッキングとカードアクションを処理します。 このモジュールは Kotlin で記述されており、Composable 関数を公開しています。MoEngage Android BOM 4.4.0 以降で利用できます。 Cards 機能とキャンペーンの設定については、Cards の概要を参照してください。

SDK のインストール

BOM を使用したインストール

MoEngage では、依存関係の管理に BOM を使用することを推奨しています。BOM はすべての MoEngage モジュールについて互換性のあるバージョンを解決するためです。BOM を使用したインストールのドキュメントを参照してください。 アプリケーションの依存関係にモジュールを追加します。[BOM_VERSION] を、統合する SDK リリースの BOM バージョンに置き換えてください。各リリースの BOM バージョンは Android SDK リリースノートに記載されています。

Jetpack Compose の有効化

依存関係を追加する前に、アプリケーションモジュールで Jetpack Compose を有効にしてください。必要なビルド構成については、Jetpack Compose セットアップガイドを参照してください。

UI コンポーネントの追加

カードフィードは、SDK が提供するアクティビティを起動するか、既存の画面内に Composable を配置することで統合できます。 各 API はワークスペース識別子を受け取ります。アプリケーションが複数の MoEngage ワークスペースで構成されている場合は識別子を渡し、単一のワークスペースを使用している場合は省略してください。

SDK が提供するアクティビティの使用

MoECardComposeActivity は、ツールバーと戻るナビゲーションを備えた完全な画面です。モジュールのマニフェストですでに宣言されているため、直接起動できます。
MOENGAGE_ACCOUNT_IDENTIFIER エクストラが存在しない場合、アクティビティはデフォルトのインスタンスを使用します。

Composable の使用

既存の画面内にフィードを描画するには、MoECardsScreen() を使用します。カテゴリタブを含むフィード全体が描画されます。

単一カテゴリの描画

タブバーなしで 1 つのカテゴリのカードを描画するには、MoECardsList() を使用します。

UI のカスタマイズ

色とテキストスタイル

フィードには一連の色とテキストスタイルが用意されています。MoECardsComposeUiHelper.setTheme() を使用して、色、テキストスタイル、またはその両方をオーバーライドできます。 MoECardColorsLight と MoECardDefaultTextStyles にはデフォルト値が保持されています。これらからコピーし、必要なプロパティのみを変更することで、残りのプロパティはデフォルト値のまま維持されます。
テーマはフィードが描画される前 (通常は onCreate() 内) に設定してください。テーマは、MoECardComposeActivity を含め、フィードが表示されるすべての場所に適用されます。 デフォルトのテーマに戻すには null を渡します。オーバーライドを単一の画面にのみ適用する場合は、その画面の onDestroy() でクリアしてください。クリアしない場合、次にフィードが表示される場所でもテーマが有効なままになります。
以下の色プロパティを使用できます。 background、header、message、timestamp、cta、unclickedIndicator、separator、tabBackground、tabSelectedText、tabUnselectedText、newUpdatesText、newUpdatesBackground、toolbarContent、refreshIndicatorBackground、refreshIndicatorContent、dialogBackground 以下のテキストスタイルプロパティを使用できます。 header、message、cta、timestamp、tab

テキスト文字列

フィード内のテキストをオーバーライドするには、アプリケーションの strings.xml ファイルで同じリソース名を宣言します。

カスタムカードレイアウト

SDK がリスト、タブ、プルして更新、トラッキングを引き続き処理する一方で、カードレイアウトを完全に置き換えることができます。
card パラメーターは、ヘッダー、メッセージ、CTA テキスト、画像 URL、タイムスタンプ、固定 (ピン留め) 状態、クリック状態、および設定されたアクションを公開します。 デフォルトのカードレイアウトに戻すには null を渡します。

コールバック

クリックリスナー

デフォルトでは、カードをタップすると MoEngage ダッシュボードで設定されたアクションが実行されます。代わりにアプリケーション内でナビゲーションを処理するには、クリックリスナーを登録します。
アプリケーションがカードのリダイレクトを処理する場合は true を返してください。この場合、SDK は設定されたアクションを実行しません。SDK に設定済みのアクションを実行させる場合は false を返してください。どちらの場合も SDK はクリックをトラッキングします。
ユーザーがカードをタップしたときに onClick() を呼び出してください。これにより、SDK がクリックをトラッキングし、設定されたアクションを実行します。

同期コールバック

アプリケーションの起動時またはフォアグラウンド移行時にカードが同期されたときにコールバックを受け取るには、SyncCompleteListener インターフェースを実装し、MoECardHelper.setSyncCompleteListener() を使用して登録します。

画像と GIF

このモジュールは、追加の設定なしで静的なカード画像を描画します。Android 9 以降では、追加の設定なしでアニメーション GIF も描画します。 それ以前の Android バージョンでアニメーション GIF を描画する場合、またはアプリケーションにすでに含まれている画像読み込みライブラリを使用する場合は、Coil または Glide のいずれかを追加してください。SDK は Coil 3.5.0 および Glide 5.0.7 に対してコンパイルされています。これらのバージョン以上を使用してください。
Coil 3 は coil-network-okhttp がないとネットワーク経由で画像を読み込まないため、coil-compose と併せて coil-network-okhttp が必要です。 これ以上の設定は必要ありません。SDK は実行時に利用可能なライブラリを検出して使用します。

カード数の API

これらの API を使用して、ユーザーがクリックしていないカードの数と、デバイス上の新しいカードの数を取得します。

未クリック数

SDK には、ユーザーがまだクリックしていないカードの数を取得する API が用意されています。件数を取得するには、以下の API を使用してください。
詳細については、MoECardHelper.getUnClickedCardCount() および MoECardHelper.getUnClickedCardCountAsync() のドキュメントを参照してください。

新着カード数

SDK には、デバイス上のユーザーの新着カードを取得する API が用意されています。件数を取得するには、以下の API を使用してください。
詳細については、MoECardHelper.getNewCardCount() および MoECardHelper.getNewCardCountAsync() のドキュメントを参照してください。