アプリ内メッセージ
アプリ内メッセージのコールバックを受け取る
コールバッククラスを利用することで、アプリ内メッセージの処理をアプリ側で受け取ることができます。
コールバッククラスの詳細は「こちら」をご確認ください。
画面遷移のサンプル
アプリ内メッセージのボタンが押された際に受け取った URL から画面を遷移するサンプルです。
このサンプルでは PopinfoInappMessageView をカスタマイズした MyPopinfoInappMessageView というクラスを使用しています。
各画面のカスタマイズ方法については 「こちら」をご確認ください。
なお、アプリ独自の遷移を行う際は事前にカスタムURIスキームの設定が必要となります。
public class MyPopinfoInappMessageView extends PopinfoBaseInappMessageView {
・・・
/**
* アプリ内メッセージのボタンが押された際の動作
*
* @param actionUrl 設定されている URL
*/
@Override
protected void onInappMessageTapAction(String actionUrl) {
try {
Uri uri = Uri.parse(actionUrl);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
} catch (ActivityNotFoundException e) {
}
}
・・・
}
独自判断のサンプル
アプリ側で独自の要素を含むユーザーに対し、アプリ内メッセージを表示させないようにするというサンプルです。
このアプリ内メッセージは作成する際にカテゴリを指定しております。
public boolean onInappMessageAppeared(Context context, String event, String category, PopinfoInappMessage inappMessage) {
// アプリで独自に保存している要素を取得
// ※サンプルのため、仮の文字列です
String originalCategory = "xxxxxxx";
// 該当カテゴリに合致するユーザーにはアプリ内メッセージを表示させないようにする
if (originalCategory.equals(category)) {
return false;
}
return true;
}
メッセージ校閲のサンプル
アプリ内メッセージを表示する直前に、メッセージ内容の校閲を行うサンプルです。
このサンプルではアプリ内メッセージに {$user} という内容を指定し、アプリ側で置換をする処理を行っております。
public boolean onInappMessageAppeared(Context context, String event, String category, PopinfoInappMessage inappMessage) {
// アプリで実際に表示をさせる要素を取得
// ※サンプルのため、仮の文字列を入れております
String name = "xxxxxxx";
inappMessage.htmlString = inappMessage.htmlString.replace("{$user}", name);
return true;
}
デバッグモードについて
AndroidManifest.xml の meta-data に POPINFO_EVENTACTION_DEBUG を追加することで、イベントトラッキングが付与された際にキー名を Toast で画面上に表示します。
詳細は「SDKの設定項目一覧」よりご確認ください。
<meta-data
android:name="POPINFO_EVENTACTION_DEBUG"
android:value="true" />
Toast 表示形式例
<キー名> matched. (現在の1日の表示回数,1日の最大表示回数)(トータル表示回数、トータル最大表示回数)
イベントキー名 app.top がマッチした際の例として、下記のように表示され、- は無制限を表します。
<app.top> matched. (1,5)(1,-)