iOS端末へのプッシュ通知は、APNs(Apple Push Notification service)と連携しています。
mobile backendに登録されたプッシュ通知を、APNsに送信することで、各端末にプッシュ通知が受信される仕組みです。
mobile backendとAPNsを連携させるのに必要なことは、ダッシュボードからAPNsと連携するための証明書を設定することだけです。
※補足
「認証局に証明書を要求...」に関してのCertificateSigningRequest.certSigningRequestファイルは使い回しが出来るので1回の作成で良い。
CertificateSigningRequest.certSigningRequestファイルは使い回しが出来るので1回の作成で良い。
開発証明書を使用、生産証明書ではPuSh通知がiPhoneとApple Watchに飛んでこなかった。
なぜかは今後調べる必要がある。
mobile backendと開発中のアプリを連携する手順紹介
サンプルプログラムでは、データストアへのデータの保存と、取得したデータの表示を行う。
新規アプリケーションを作成
SDKライブラリのインストール
SDKをframework形式で利用する
SDKをインストールする
AppDelegate.mの冒頭に以下のコードを記載してください。
#import <NCMB/NCMB.h>
APIを利用するための設定
AppDelegate.mのapplication:didFinishLaunchingWithOptions:に以下のコードを記載してください。
アプリケーションキーとクライアントキーは、ダッシュボードの右上にあるアカウントメニューから、アプリ一覧を開くとコピーすることができます。
[NCMB setApplicationKey:@"YOUR_APPLICATION_KEY" clientKey:@"YOUR_CLIENT_KEY"];
NCMBQuery *query = [NCMBQuery queryWithClassName:@"TestClass"];
[query whereKey:@"message" equalTo:@"test"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (error == nil) {
if ([objects count] > 0) {
NSLog(@"[FIND] %@", [[objects objectAtIndex:0]
objectForKey:@"message"]);
} else {
NSError *saveError = nil;
NCMBObject *obj = [NCMBObject
objectWithClassName:@"TestClass"];
[obj setObject:@"Hello, NCMB!"
forKey:@"message"];
[obj save:&saveError];
if (saveError == nil) {
NSLog(@"[SAVE] Done");
} else {
NSLog(@"[SAVE-ERROR] %@",
saveError);
}
}
} else {
NSLog(@"[ERROR] %@", error);
}
}];
YOUR_APPLICATION_KEYとYOUR_CLIENT_KEYを、ダッシュボードで作成したアプリのアプリケーションキーとクライアントキーに置き換えてください。
アプリケーションを実行&ダッシュボードの確認
ダッシュボードで編集&アプリケーション実行
今度はデータストアから新しいデータを追加してから、サンプルアプリを実行してみます。
データストアを開いて「新しいレコード」ボタンをクリックしてください。
データが何もない行が表示されるので、messageフィールドのところでダブルクリックしてください。
値が入力できるようになるので、「test」と入力してエンターキーを押してください。
入力したものがデータストアに保存されます。
データを追加したら、サンプルアプリを起動してください。デバッグログに「[FIND] test」が表示されることが分かります。
AppDelegate.m
Push通知 端末認識(DeviceTokin)Xcodeプロビジョニングファイル実装設定が必要
アプリを起動してLogメッセージが出れば接続設定完了
ニフティクラウド DeviceToken
ニフティクラウド 端末情報の登録が成功
deviceTokenが確立すると接続記述が記載されます。
配信端末数が表示されていたら成功
配信端末数が表示されない時は証明書設定を見直す必要がある。
Push通知が届かなかったら今までの設定を見直す。
実際にApple Watchまで含めて動作した時にPush通知が届かず困ったのでこの手順にした。
InterfaceController.m
PushNotificationPayload.apns
Apple Watch に静的・動的表示がでれば完了
コメントをお書きください