ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

リッチプッシュ通知を使って一歩進んだユーザ体験のプッシュを実現しよう

今回はニフクラ mobile backendの提供するプッシュ通知機能の一つ、リッチプッシュ通知について紹介します。

リッチプッシュ通知とは?

一言で言うとリッチプッシュ通知とはWebViewを使って指定したURLを開くプッシュ通知です。アプリへの通知ではメッセージの他、アプリ内で使えるデータを送信できます。そのデータを使ってアプリ内で処理判定を行うことで特定のビューを開いたり、ポイントをゲットしたりする仕組みが使えます。リッチプッシュ通知をその機能をより手軽に使えるようにしたものです。

通常のプッシュ通知の場合(上の矢印の流れ)はアプリを起動して完了しますが、リッチプッシュ通知(下の矢印の流れ)ではWebViewをモーダルで開きます。WebViewで開くURLは自由に設定できますので、自社のWebサイト内にあるイベント告知を表示したり、新機能紹介ページを開くこともできます。アイディア次第で様々な利用ができるはずです。

使い方

アプリ側(今回はiOS)の設定としては、通常のプッシュ通知を受け取るためのコードに加えて、handleRichPushを利用するためのコードが必要になります。プッシュ通知のペイロード内にリッチプッシュ用のURLがあるかどうか判定し、表示を行います。なおリッチプッシュ通知では必ずWebViewが開きますので、アプリを操作中には開かない方が良いかも知れません。その点を考慮したコードは次のようになります。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
    if ([userInfo.allKeys containsObject:@"com.nifty.RichUrl"]){
        if ([[UIApplication sharedApplication] applicationState] != UIApplicationStateActive){
            [NCMBPush handleRichPush:userInfo];
        }
    }
}

“com.nifty.RichUrl”の部分にURLが入ってくる仕組みです。

管理画面での設定

リッチプッシュ通知を送る場合は、管理画面でURLを入力すればOKです(画像のハイライト部)。他は通常のプッシュ通知と変わりませんので、メッセージを入れたり配信端末を絞り込むこともできます。

アプリでの見え方

リッチプッシュ通知を受け取った時の表示は通常のプッシュ通知と変わりません。

そして他の通知と同じように、通知をタップするとアプリに表示が切り替わって、モーダルビューが開きます。

この内容は管理画面で指定したURLを開いています。一番下に閉じるためのボタンがあり、それをタップすればアプリ画面に戻る仕組みです。

メリット

リッチプッシュ通知のメリットは何と言ってもカスタマイズ性の高さです。HTMLなので文字サイズを変えたり、画像を入れたりと表示を柔軟にカスタマイズさせることができます。Web上なのでコンテンツの差し替えも容易です。

もちろんこういった画面をアプリ内部に仕込むこともできますが、作り込む工数や審査の時間を考えるとHTMLであるメリットは大きいと言えます。また、ニフティクラウド mobile backendのSDKを使うことでいつでもすぐにリッチプッシュ通知が使えるのもメリットではないでしょうか。

もっとカスタマイズしたい場合は?

WebViewを開くだけでなく、ポイントを付与したり特定のビューを開いたりといったカスタマイズをしたいと思うかも知れません。そんな時にはプッシュ通知の際にJSONデータを送って、それをアプリ側で判定することでもっとカスタマイズした動作を実現できます。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // プッシュ情報の取得
    NSDictionary *payload = [launchOptions objectForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"];
    NSDictionary *data = [payload objectForKey:@"name"];
    if (data != NULL){
        //値を取得した後の処理
        NSLog(@"data:%@", data);
    }
    return YES;
}

上記の処理ではペイロードの中に name があるかどうかで処理分けをしています。同じように処理を行えばより細かくこだわった動作が可能になります。


プッシュ通知ではテキストメッセージしか送れず、文字数も短いのでなかなか思ったメッセージが送れないかも知れません。そこでリッチプッシュ通知を使って、HTMLを使ったダイナミックなメッセージを送ってみてはいかがでしょうか。

ユーザ体験としても文字を送るだけよりも華やかなHTMLで通知を読める方が理解度が深まり、魅力を感じてくれるはずです。ぜひお試しを!

 

★プッシュ通知をもっと活用したい!という方に!

ニフティクラウド mobile backend(mBaaS)でプッシュ通知をより積極的に運用するためのノウハウをまとめたeBook「戦略的プッシュ通知運用法」を配布しています。ぜひダウンロードしてご覧ください!!

f:id:mbaasblog:20180927120153p:plain