20170208更新
- ニフクラmobile backendの『プッシュ通知』機能を実装したサンプルプロジェクトです
- 簡単な操作ですぐに ニフクラmobile backendの機能を体験いただけます★☆
スマートフォンアプリのバックエンド機能(プッシュ通知・データストア・会員管理・ファイルストア・SNS連携・位置情報検索・スクリプト)が開発不要、しかも基本無料(注1)で使えるクラウドサービス!
注1:詳しくはこちらをご覧ください
- Mac OS X 10.10(Yosemite)
- Xcode ver. 7.2.1
- iPhone6 ver. 8.2
- このサンプルアプリは、実機ビルドが必要です
※上記内容で動作確認をしています
- ニフクラmobile backendのプッシュ通知は、iOSが提供している通知サービスを利用しています
- iOSの通知サービス APNs(Apple Push Notification Service)
- 上図のように、アプリ(Xcode)・サーバー(ニフクラmobile backend)・通知サービス(APNs)の間でやり取りを行うため、認証が必要になります
- 認証に必要な鍵や証明書の作成は作業手順の「0.プッシュ通知機能を使うための準備」で行います
【iOS】プッシュ通知の受信に必要な証明書の作り方(開発用)
- 上記のドキュメントをご覧の上、必要な証明書類の作成をお願いします
- 証明書の作成にはApple Developer Programの登録(有料)が必要です
1. ニフクラmobile backendの会員登録とログイン→アプリ作成と設定
- 上記リンクから会員登録(無料)をします。登録ができたらログインをすると下図のように「アプリの新規作成」画面が出るのでアプリを作成します
- アプリ作成されると下図のような画面になります
- この2種類のAPIキー(アプリケーションキーとクライアントキー)はXcodeで作成するiOSアプリにニフクラmobile backendを紐付けるために使用します
- 続けてプッシュ通知の設定を行います
- ここで⑦APNs用証明書(.p12)の設定も行います
2. GitHubからサンプルプロジェクトのダウンロード
- 下記リンクをクリックしてプロジェクトをMacにダウンロードします
- ObjcPushApp
- ダウンロードしたフォルダを開き、「ObjcPushApp.xcworkspace」をダブルクリックしてXcode開きます(白い方です)!
- 「ObjcPushApp.xcodeproj」(青い方)ではないので注意してください!
AppDelegate.m
を編集します- 先程ニフクラmobile backendのダッシュボード上で確認したAPIキーを貼り付けます
- それぞれ
YOUR_NCMB_APPLICATION_KEY
とYOUR_NCMB_CLIENT_KEY
の部分を書き換えます - このとき、ダブルクォーテーション(
"
)を消さないように注意してください! - 書き換え終わったら
command + s
キーで保存をします
- 始めて実機ビルドをする場合は、Xcodeにアカウント(AppleID)の登録をします
- メニューバーの「Xcode」>「Preferences...」を選択します
- Accounts画面が開いたら、左下の「+」をクリックします。
- Apple IDとPasswordを入力して、「Add」をクリックします
- 追加されると、下図のようになります。追加した情報があっていればOKです
- 確認できたら閉じます。
- プロジェクトをクリックして、「Build Settings」>「Code Signing」に②開発用証明書(.cer)と⑤プロビジョニングプロファイルを設定します
- 「Code Signing Identity」に②開発用証明書(.cer)を設定しますが、「Provisioning Profile」に作成した⑤プロビジョニングプロファイルを設定すれば、「Code Signing Identity」の部分は「Automatic」で構いません
- 注意:作成した⑤プロビジョニングプロファイルは一度ダブルクリックをしておかないと、「Provisioning Profile」に設定できません。
- Bundle ID を設定します
- 「General」>「Identity」の「Bundle Identifier」に③AppID を作成したときに入力したBundle IDに書き換えてください
- 設定は完了です
- lightningケーブルで④端末の登録で登録した、動作確認用iPhoneをMacにつなぎます
- 実機ビルドが初めての場合はこちらをご覧いただき、実機ビルドの準備をお願いします
- Xcode画面で左上で、接続したiPhoneを選び、実行ボタン(さんかくの再生マーク)をクリックします
- インストールしたアプリを起動します
- プッシュ通知の許可を求めるアラートが出たら、必ず許可してください!
- 起動されたらこの時点でデバイストークンが取得されます
- ニフクラmobile backendのダッシュボードで「データストア」>「installation」クラスを確認してみましょう!
- 端末側で起動したアプリは一度閉じておきます
- いよいよです!実際にプッシュ通知を送ってみましょう!
- ニフクラmobile backendのダッシュボードで「プッシュ通知」>「+新しいプッシュ通知」をクリックします
- プッシュ通知のフォームが開かれます
- 必要な項目を入力してプッシュ通知を作成します
- 端末を確認しましょう!
- 少し待つとプッシュ通知が届きます!!!
サンプルプロジェクトに実装済みの内容のご紹介
- ニフクラmobile backend のドキュメント(クイックスタート)をご活用ください
AppDelegate.m
のdidFinishLaunchingWithOptions
メソッドにAPNsに対してデバイストークンの要求するコードを記述し、デバイストークンが取得された後に呼び出されるdidRegisterForRemoteNotificationsWithDeviceToken
メソッドを追記をします- デバイストークンの要求はiOSのバージョンによってコードが異なります
//
// AppDelegate.m
// ObjcPushApp
//
// Created by Natsumo Ikeda on 2016/06/09.
// Copyright © 2016年 NIFTY Corporation. All rights reserved.
//
#import "AppDelegate.h"
#import "NCMB/NCMB.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
//********** APIキーの設定とSDKの初期化 **********
[NCMB setApplicationKey:@"YOUR_APPLICATION_KEY" clientKey:@"YOUR_CLIENT_KEY"];
// デバイストークンの要求
if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_1){
/** iOS8以上 **/
//通知のタイプを設定したsettingを用意
UIUserNotificationType type = UIUserNotificationTypeAlert |
UIUserNotificationTypeBadge |
UIUserNotificationTypeSound;
UIUserNotificationSettings *setting;
setting = [UIUserNotificationSettings settingsForTypes:type categories:nil];
//通知のタイプを設定
[[UIApplication sharedApplication] registerUserNotificationSettings:setting];
//DevoceTokenを要求
[[UIApplication sharedApplication] registerForRemoteNotifications];
} else {
/** iOS8未満 **/
[[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
}
return YES;
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
//端末情報を扱うNCMBInstallationのインスタンスを作成
NCMBInstallation *installation = [NCMBInstallation currentInstallation];
//Device Tokenを設定
[installation setDeviceTokenFromData:deviceToken];
//端末情報をデータストアに登録
[installation saveInBackgroundWithBlock:^(NSError *error) {
if(!error){
//端末情報の登録が成功した場合の処理
} else {
//端末情報の登録が失敗した場合の処理
}
}];
}
@end
- 同じ内容のSwift版や、バージョン別サンプルもご用意しています
- Objective-C(Xcode8,iOS10以上対応)版
- Swift(Xcode7,iOS10未満対応)版
- Swift(Xcode8,iOS10以上対応)版
- ニフクラmobile backend のドキュメント(プッシュ通知)をSwift版に書き換えたドキュメントをご用意していますので、ご活用ください
- Swiftでプッシュ通知を送ろう!