前回は、「Parse.comの利用登録からSDK組み込み方法」についてご説明しました。
今回はプッシュ通知についてご紹介します。
まず、プッシュ通知とは何かを簡単にご説明します。
プッシュ通知とは、外部サーバと連携して能動的に情報を取得してユーザに通知する方式です。
ユーザがアプリケーションを起動していなくても、外部サーバから任意のメッセージを
デバイス端末へ送ることができるサービスです。
デバイス端末でメッセージを受け取った場合、ダイアログ又は、バナーで通知されます。
ユーザは下記の動作を行うことによってアプリケーションを起動することができます。
- ダイアログの「起動」ボタンをタップ
- バナーをタップ
アプリケーションが更新されたタイミングで任意のメッセージをデバイス端末へ
送ることができるので、アプリケーションの継続利用を促すには効果的な機能といえます。
それでは、プッシュ通知を実装してみましょう。
parse.comでプッシュ通知が使用できるPlatformは下記です。
- Android
- iOS
- Windows
今回はその中で、「iOS」を例としてプッシュ通知をご説明します。
まずは、事前準備として下記をそろえておきましょう。
- iPhone5端末
- P12証明書ファイル
- プッシュ通知が有効になっているバンドルID
- プッシュ通知が有効になっているプロビジョニングファイル
※P12証明書ファイルの作成方法については、割愛します。
プッシュ通知を有効とする場合は、iOS developer登録が必要です。
それでは、実際に行ってみましょう。
まず、最初にParse.comサイトにログインしてプッシュ通知の設定を行います。
<Parse.comサイトにてプッシュ通知の設定方法>
【手順1】
PCブラウザで、下記にアクセスします。
Parse.com
【手順2】
画面上部にある「Log In」ボタンをクリックします。

【手順3】
下記情報を入力して「Log In」ボタンをクリックします。
- ユーザ名
- パスワード

【手順4】
画面中央部にある「設定」リンクをクリックします。

【手順5】
「Push notifications」リンクをクリックします。

【手順6】
プッシュ通知を有効にするため、「Push Notification Settings」の「OFF」ボタンをクリックします。
※「OFF」から「ON」に切り替わることを確認します。

【手順7】
P12証明書ファイルを登録するため、「Apple Push Certificate」の「Select your certificate」ボタンをクリックします。

【手順8】
事前準備で用意した「P12証明書ファイル」を選択して、「選択」ボタンをクリックします。

【手順9】
設定情報が更新され、再読み込みされます。

プッシュ通知を行うための準備ができました。
これで、プッシュ通知の設定は完了となります。
それでは、前回作成した「SDKを組み込んだプロジェクト」へプッシュ通知機能を実装する為の準備として
Parseを初期化する際に必要な下記のApplicationKey情報をParse.comサイトから取得しておきましょう。
- Application ID(アプリケーションID)
- Client Key(クライアントキー)
<ApplicationKey情報の取得方法>
【手順1】
画面中央部にある「設定」リンクをクリックします。

【手順2】
「Application Keys」リンクをクリックします。

【手順3】
下記の情報をメモしておきます。
- Application ID
- Client Key

これで、必要な情報は取得できました。
それでは、プッシュ通知機能を実装していきましょう。
<プッシュ通知機能を実装する方法>
【手順1】
前回作成したプロジェクトを開きます。
※事前に用意した下記をプロジェクトに組み込んでおきます。
- プッシュ通知が有効になっているバンドルID
- プッシュ通知が有効になっているプロビジョニングファイル

【手順2】
「AppDelegate.m」を選択して、「parse」をインポートします。
■AppDelegate.m
// AppDelegate.m // testProject #import "AppDelegate.h" //下記を追記 #import <Parse/Parse.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. return YES; }
【手順3】
アプリケーション起動時に呼ばれる「didFinishLaunchingWithOptions」メソッド内にParse初期化処理を追加します。
※Parse初期化処理を行うことでSDK内の各APIを使用することができます。
引数には、<ApplicationKey情報の取得方法>で取得した下記を指定します。
- ApplicationID
- ClientKey
■AppDelegate.m
// AppDelegate.m // testProject #import "AppDelegate.h" #import <Parse/Parse.h> //下記を追記 #define ParseApplicationID @"ApplicationIDを設定" #define ParseClientKey @"clientKeyを設定" @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. //下記を追記 //parseを初期化する [Parse setApplicationId:ParseApplicationID clientKey:ParseClientKey]; return YES; }
【手順4】
「didFinishLaunchingWithOptions」メソッド内にプッシュ通知を有効にする処理を追加します。
有効とする際に、下記の通知方法を設定します。
- UIRemoteNotificationTypeAlert(Push通知に表示するメッセージ)
- UIRemoteNotificationTypeBadge(Push通知した際にアプリケーションアイコンに件数を表示する)
- UIRemoteNotificationTypeSound(Push通知した際にサウンドを鳴らす)
■AppDelegate.m
// AppDelegate.m // testProject #import "AppDelegate.h" #import <Parse/Parse.h> #define ParseApplicationID @"ApplicationIDを設定する" #define ParseClientKey @"ClientKeyを設定する" @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. //parseを初期化する [Parse setApplicationId:ParseApplicationID clientKey:ParseClientKey]; //下記を追記 //プッシュ通知を有効とする [application registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert| UIRemoteNotificationTypeBadge| UIRemoteNotificationTypeSound]; return YES; }
【手順5】
DeviceToken受信時に呼ばれる「didRegisterForRemoteNotificationsWithDeviceToken」メソッドを追加します。
追加後、メソッド内に受信したDeviceTokenをParse.comのサーバへ保存する処理を追加します。
■AppDelegate.m
//下記を追記 //DeviceToken受信メソッド - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { PFInstallation *currentInstallation = [PFInstallation currentInstallation]; //取得したDeveiceTokenを設定する [currentInstallation setDeviceTokenFromData:deviceToken]; //保存する [currentInstallation saveInBackground]; }
【手順6】
アプリケーションがフォアグランド又は、バックグラウンドである場合、プッシュ通知からアプリケーションが
起動されたときに呼ばれる「didReceiveRemoteNotification」メソッドを追加します。
■AppDelegate.m
//下記を追記 //プッシュ受信メソッド - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { //アプリがフォアグランドである場合 if( UIApplicationStateActive == application.applicationState ) { //起動処理を行う } //アプリがバックグラウンドから起動した場合 else if( UIApplicationStateInactive == application.applicationState ) { //起動処理を行う } }
これで、実装は完了となります。
また、プッシュ通知からアプリケーション起動を行った場合、メッセージを受信することができ、
受信したメッセージをアプリケーション内で使用することができます。
ただし、アプリケーションの起動状態によって受信するメソッドが異なるので注意してください。
■アプリケーションが未起動である場合
下記メソッドの引数である「launchOptions」に受信したメッセージ情報が格納されています。
※NSDictionary形式で取り出すことが可能です。
– (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
■アプリケーションがフォアグランド又は、バックグラウンドである場合
下記メソッドの引数である「userInfo」に受信したメッセージ情報が格納されています。
※NSDictionary形式で取り出すことが可能です。
– (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
それでは、実際にプッシュ通知を送ってみましょう。
<Parse.comサイトからプッシュ通知を行う方法>
【手順1】
用意したiPhone5端末とPCを接続し、作成したアプリをインストールします。

【手順2】
作成したアプリケーションをタップして起動します。

【手順3】
プッシュ通知送信確認ダイアログが表示されるので、「OK」ボタンをクリックします。

【手順4】
ホームキーを押下し、アプリケーションをバックグラウンドにします。

【手順5】
Parse.comのサイトを表示し、画面中央にある「Push」ボタンをクリックします。

【手順6】
「Send a Push」ボタンをクリックします。

【手順7】
「Compose message」に任意のメッセージを入力し、「Send Notification」ボタンをクリックします。
また、形式を「JSON」に変更することでJSON形式でメッセージを送ることができます。
JSONメッセージ例
{ “alert” : “メッセージ!!!”,
“sound” : “”,
“message list”:[
{ “title” : “タイトル1″,”message”:”タイトル1″ },
{ “title” : “タイトル2″,”message”:”メッセージ2″ }
]
}
※JSON形式ではないメッセージを送ってしまうとエラーになりますので、注意してください。

【手順8】
メッセージ送信した履歴画面が表示されます。

【手順9】
iPhone5端末に通知がきます。

【手順10】
「テストメッセージ」エリアをタップするとアプリケーションが起動されます。

お疲れ様でした。
Parse.comを使用することで、簡単にiPhone5端末へメッセージを送ることができます。
みなさんもアプリケーションを作成する際、プッシュ通知機能を取り入れてみてはどうでしょうか。
それでは、プッシュ通知が行えたところで、今回は終了となります。
<次回の更新について>
次回は、「データストレージ機能」についてご紹介します。