プッシュ通知からアプリ内の特定のviewを開く(Android)
プッシュ通知による起動から離脱させない方法
通常、プッシュ通知よる起動ではアプリのTOPが開きます。ユーザーはプッシュ通知の文言に惹かれて起動したのにも関わらず、該当箇所を探すのに手間取り、そのまま離脱につながってしまうことがあります。離脱率の低下を防ぐため、プッシュ通知からアプリTOPではなく、任意の場所に直結した導線を張りましょう。
(例)
・新着記事のプッシュ通知から、該当記事に遷移させたい。
・セール情報のプッシュ通知から、セール商品特集ページに遷移させたい。
・新キャラ追加のプッシュ通知から、ガチャページに遷移させたい。
設定方法を以下にてご説明させて頂きます。
プッシュ通知にURLを添えて開く方法
Growth Pushのプッシュ通知には、カスタムフィールドという形で、ユーザーに表示されるメッセージ以外のデータを添えることが可能です。
このデータにWebページのURLを添えることで、プッシュ通知を開いたユーザーにそのURLのWebページを即座に見せることが可能です。
Androidで、プッシュ通知ごとにURLを指定して、アプリ起動時に開く方法
このURLの代わりにアプリ内の特定の画面を識別するIDを指定することで、プッシュ通知からアプリ内の特定の画面を開くことも可能です。

プッシュ通知からカスタムフィールドのデータの受け取り
GrowthPush.getInstance().setReceiveHandler(new DefaultReceiveHandler(new DefaultReceiveHandler.Callback() {
@Override
public void onOpen(Context context, Intent intent) {
String url = intent.getExtras().getString("url");
if (url == null) {
super.onOpen(context, intent);
return;
}
// TODO URLをWebブラウザで開く処理
}
}));
※setReceiveHandlerはApplicationクラスを継承したクラスのonCreateで実装してください。

URLは上記画像のようにカスタムフィールドで指定して下さい。
画面を開く際の具体的な実装について説明します。
画面を識別するIDにしたがって画面を開く
たとえば、画面を識別するIDとして、独自のURLスキームをもつURLを指定するとします。
myapp://example.com/areas/123 このURLは、エリアのうちID:123の画面へ直接遷移するというURLです。

先のプッシュ通知受信時の処理として、たとえば下記のようなURLのパースと振り分けの処理を実装します。
public boolean openUrl(String url) {
// URLスキームがHTTPの場合は、Webブラウザで開く
if (url.startsWith("http") || url.startsWith("https")) {
// TODO HTTPのURLをWebブラウザで開く処理
return true;
}
// 独自のURLスキームだった場合
if (url.startsWith("myapp")) {
URL urlScheme = new URL(url);
List<String> pathComponent = new ArrayList<String>();
Pattern pattern = Pattern.compile("/+([^/]+)");
Matcher matcher = pattern.matcher(urlScheme.getPath());
while (matcher.find()) {
pathComponent.add(matcher.group(1));
}
if(pathComponent.size() >= 3) {
int areaId = Integer.valueOf(pathComponent.get(2));
// TODO 画面を開く処理
}
// ...(略)...
}
// ...(略)...
return true;
}
具体的な実装については、アプリに依存する部分が多いですが、同様の手法によって、プッシュ通知からアプリ内の特定の画面を開くことが可能です。