プッシュ通知(Swift_work_in progress)
位置情報連動配信
Contents |
位置情報連動配信の概要
位置情報のデータ保存とサーバーからのプッシュ通知配信に
ニフクラ mobile backendを利用します。
iOS8から追加されたLocation Notificationと組み合わせることで、
通知を行う位置を動的に更新できる仕組みを作ります。
(アプリの主な動作フロー)
- Silent Push通知を配信
- Silent Push通知の内容から通知を行う位置を取得
- Location Notificationを設定
このページでは、以下の設定が済んでいるものとして説明していきます。
- Swift SDKのインストールと初期化
- 通常のプッシュ通知設定
位置情報データの登録
位置情報をあらかじめデータストアに登録しておく必要があります。
以下の例では、Locationクラスに位置情報を保存しています。
管理画面から位置情報を設定する場合は
geoフィールドは入力形式を緯度経度に変更してください
データストアの値を編集する操作手順は以下の通りです。
- 各レコードの編集するフィールドをダブルクリックすると入力状態になります
- 値を入力したら、エンターキーを押して入力した値を保存します
アプリ側の設定
content-availableが指定されてプッシュ通知が行われた場合、AppDelegateクラスの
application:didReceiveRemoteNotification:fetchCompletionHandler:メソッドが呼びだされます。
TBD
Silent Push通知の内容から通知を行う位置を取得
取得したobjectIdをNCMBObjectのインスタンスにセットして
fetchInBackgroundWithBlockメソッドを呼び出すと、
データストアからobjectIdを基にデータが取得されます。
TBD
Location Notificationを設定
Location Notification設定方法はiOS 10未満とiOS 10以上の場合で異なりますが、両場合を考慮した実装方法を説明していきます。
以下のようにUserNotificationsを利用できるように準備します。
- Xcode上でプロジェクト設定画面を開き、Build Phasesを選択し、Link Binary With LibrariesにUserNotifications.frameworkを追加します。
- Location Notificationを設定したいファイルに以下のコードを追加します。
TBD
Location Notification用のNotificationオブジェクトを作成します
TBD
CLCircularRegionの変数を用意し、
取得したデータの位置情報からCLLocationCoordinate2Dを作成します。
このCLLocationCoordinate2Dをregionに設定し、
そのregionをNotificationに設定するとLocation Notificationが行われます。
TBD
リージョンを作成して、リージョンから外に出た場合の通知をOFFにします。
TBD
リージョンを設定してLocation Notificationを登録します。
TBD
管理画面からSilent Push通知を配信する
管理画面からSilent Push通知を配信する場合は、
以下のような設定で配信を行ってください。
- JSONの欄に、データストアに登録した位置情報データのobjectIdを指定する
{"locationId":"LOCATION_ID"}
- タイトル、メッセージは空白
- iOS向けに配信
- 音声ファイル名のdefaultは削除
- content-availableを有効にする
参考資料
位置情報連動プッシュ通知を利用してO2Oアプリを作成するチュートリアルを公開しています。
チュートリアルではより詳細な手順を説明しています。
お探しの内容が見つからなかった場合はユーザーコミュニティ
もご活用ください。(回答保証はいたしかねます)
なお、 Expertプラン以上のお客様はテクニカルサポートにてご質問を承らせて頂きます。
推奨画面サイズ1024×768px以上