ニフクラ mobile backendを使ってSwiftでプッシュ通知を送ってみる
- Swift3 での書き方や CocoapodsでSDKを利用する場合 などは下記をご覧ください
ニフクラ mobile backendはスマートフォン、タブレットアプリにおけるバックグラウンド(サーバサイド)の仕組みをまるっと提供するサービスになります。主な機能として、
- データストア(データベースのような機能)
- ファイルストア(写真、動画、音楽などのバイナリファイルの保存)
- 会員管理(会員登録、認証など)
- プッシュ通知
があります。今回はこの一つ、プッシュ通知機能を試してみます。iOS用のSDKはObjecive-C製なのですが、今回はSwiftから試してみたいと思います。
必要なもの
- ニフクラ mobile backendのアカウント(無料)
- iOS開発者のアカウント(有料)
- アプリのプロビジョニングなど
iOS Dev Centerのプロビジョニングはあえて省きますが、予め用意してください。
SDKの組み込み
今回はCocoaPodsを使います。Podfileの内容は次のようになります。
platform :ios, '10.0' #10.0以上指定してください
target 'SwiftPush' do
use_frameworks!
pod 'NCMB', :git => 'https://github.com/NIFCLOUD-mbaas/ncmb_swift.git'
end
これを書いたら pod install
します。
SDKの読み込み
AppDelegate.swiftの冒頭に次のコードを追記して、インストールしたSDKを読み込みます
- 追記するコードは、SDKのインストール方法によって異なります
- SDKをダウンロードして利用する方法では、こちらは不要です
// CocoaPodsを利用する方法
import NCMB
これでニフクラ mobile backendを使う準備は整いました。
ニフクラ mobile backendでアプリ作成
ニフクラ mobile backendにてアプリを作成します。
この時、アプリケーションキーとクライアントキーが生成されるので覚えておきます。
AppDelegate.swiftへの組み込み
まず didFinishLaunchingWithOptionsに記述します。
import UserNotifications
///////////////////////////途中省略///////////////////////////////
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
//********** SDKの初期化 **********
NCMB.initialize(applicationKey: "APPLICATION_KEY", clientKey:"CLIENT_KEY")
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert, .badge, .sound]) {granted, error in
if error != nil {
// エラー時の処理
return
}
if granted {
// デバイストークンの要求
UIApplication.shared.registerForRemoteNotifications()
}
}
return true
}
APPLICATION_KEY および CLIENT_KEY は先ほど登録したニフクラ mobile backendのキーに置き換えてください。
次にデバイストークン取得時に処理を記述します。
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
// 端末情報を扱うNCMBInstallationのインスタンスを作成
let installation : NCMBInstallation = NCMBInstallation.currentInstallation
// デバイストークンの設定
installation.setDeviceTokenFromData(data: deviceToken)
// 端末情報をデータストアに登録
installation.saveInBackground {result in
switch result {
case .success:
// 端末情報の登録に成功した時の処理
break
case let .failure(error):
// 端末情報の登録に失敗した時の処理
print(error)
break
}
}
}
Xcodeでの対応
TARGETS -> CapabilitiesからPush NotificationsをONに設定してください。
正常に設定された場合、.entitlementsファイルにaps-environmentが追加されます。
Xcode 11の場合、Capability画面が変更されました。設定の「Signing & Capabilities」を選択し、
「+ Capability」をクリックします。Capability 画面から Push Notification を検索し、ダブルクリックして追加します。正常に追加されましたら、Signing情報の下に Push Notification が記載されています。
管理画面からプッシュ作成
アプリを実機に転送して(プッシュ通知はシミュレータでは確認できないので)、起動すると初回はプッシュ通知の許可に関するダイアログが表示されます。
プロビジョニングやiOS Dev Centerでの設定、およびニフクラ mobile backendのアプリケーションキー、クライアントキーが正しく設定されていれば、データストアの installation クラスにデバイストークンが保存されます。
後はプッシュ通知作成画面でプッシュ通知を作成します。
実際に運用の中で使う場合は、アプリの再インストールを考慮した端末情報の登録も必要になるかと思いますが、ここまでの流れは慣れてしまえばすぐにできるようになります。せっかく作ったアプリなので、ぜひプッシュ通知も使ってみてください。
Author And Source
この問題について(ニフクラ mobile backendを使ってSwiftでプッシュ通知を送ってみる), 我々は、より多くの情報をここで見つけました https://qiita.com/nifcloud_mb/items/759a84d523f241fee22c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .