インタラクションイベントに応答する
インタラクションイベントリスナーを追加することで、ユーザーがアプリ内メッセージと対話する際に追加の動作で応答できます。
メッセージ受信
イベントがシンクされたアプリ内メッセージの条件と一致した結果として、ライブラリからアプリ内メッセージが受信されることに応答するために、onMessageReceived リスナーを追加します。カスタムUIを実装する場合、UIがイベントトリガーのキャンペーンメッセージに応答できるようにするために必須ですが、アプリケーションが要求する他の理由でこれらのメッセージをリッスンするのに便利な場合もあります。
import { onMessageReceived } from 'aws-amplify/in-app-messaging';
const myMessageReceivedHandler = (message) => { // 受信したメッセージで何かを実行する};
const listener = onMessageReceived(myMessageReceivedHandler);
listener.remove(); // リスナーが不要になったときは削除することを忘れないでくださいメッセージ表示
ユーザーにアプリ内メッセージが表示されることに応答するために、onMessageDisplayed リスナーを追加します。
import { onMessageDisplayed } from 'aws-amplify/in-app-messaging';
const myMessageDisplayedHandler = (message) => { // 表示されたメッセージで何かを実行する};
const listener = onMessageDisplayed(myMessageDisplayedHandler);
listener.remove(); // リスナーが不要になったときは削除することを忘れないでくださいメッセージ閉じる
ユーザーがアプリ内メッセージを閉じることに応答するために、onMessageDismissed リスナーを追加します。
import { onMessageDismissed } from 'aws-amplify/in-app-messaging';
const myMessageDismissedHandler = (message) => { // 閉じられたメッセージで何かを実行する};
const listener = onMessageDismissed(myMessageDismissedHandler);
listener.remove(); // リスナーが不要になったときは削除することを忘れないでくださいメッセージアクション実行
アプリ内メッセージに対してアクションが実行されることに応答するために、onMessageActionTaken リスナーを追加します。通常、これはユーザーがアプリ内メッセージのボタンをタップまたはクリックしたことを意味します。
import { onMessageActionTaken } from 'aws-amplify/in-app-messaging';
const myMessageActionTakenHandler = (message) => { // アクションが実行されたメッセージで何かを実行する};
const listener = onMessageActionTaken(myMessageActionTakenHandler);
listener.remove(); // リスナーが不要になったときは削除することを忘れないでくださいリスナーへの通知
Amplify In-App Messaging UIを使用している場合、インタラクションイベント通知はすでにセットアップされています。ただし、独自のUIを実装している場合は、UIコードを通じてインタラクションイベントをリスナーに通知することを強くお勧めします。これにより、ライブラリはインストールされたプロバイダーによって規定されたさらなるアクション(例えば、対応するAnalyticsイベントを自動的に記録すること)を実行できます。
import { notifyMessageInteraction } from 'aws-amplify/in-app-messaging';
const message = { // インタラクションを記録したいアプリ内メッセージ}
/** * 通知できるインタラクションイベントは、それぞれのリスナーに対応します: * 'messageReceived' * 'messageDisplayed' * 'messageDismissed' * 'messageActionTaken' */notifyMessageInteraction({ message, type: 'messageDisplayed' });