Appleのプッシュ通知ガイドから:
通知の到着時にターゲットアプリケーションが実行されていない場合、アラートメッセージ、サウンド、またはバッジの値が再生または表示されます。アプリケーションが実行されている場合、iOSはそれをNSDictionaryオブジェクトとしてアプリケーションデリゲートに配信します。ディクショナリには、対応するCocoaプロパティリストオブジェクト(およびNSNull)が含まれています。
これをアプリに実装しましたが、すべて正常に動作します。アプリにフォーカスがある場合、アプリはメッセージを直接取得します。アクティブでない場合は、アラートが表示され、ユーザーがアラートをクリックするとアプリが起動し、最後にアプリがメッセージを保持します。
ただし、アプリがアクティブでないときにメッセージが到着した場合、iOSにアプリをアクティブにして、メッセージを表示したりユーザーの操作を必要とせずにメッセージを渡すことは可能でしょうか?
サーバーからのプッシュメッセージは、ユーザーの現在の位置によっては、ユーザーだけが関心を持つ可能性があるため、この動作が必要です。アプリは次のように機能します。起動すると、プッシュに登録し、サーバーに通知します。私はこの位置にいて、近くで何か面白いことが起こったときに通知を受け取りたいと思っています。後でサーバーがメッセージを送信しますが、ユーザーがそのエリアから移動した可能性があるため、アプリでユーザーの位置をもう一度確認し、ユーザーが元の位置から離れすぎている場合はユーザーに迷惑をかけないようにします。
n分ごとに現在位置をサーバーに通知するバックグラウンドサービスを利用することは可能だと思いますが、これによりバッテリーが消耗するのではないかと心配しています。
これについて何か考えはありますか?