1

Appleのプッシュ通知ガイドから:

通知の到着時にターゲットアプリケーションが実行されていない場合、アラートメッセージ、サウンド、またはバッジの値が再生または表示されます。アプリケーションが実行されている場合、iOSはそれをNSDictionaryオブジェクトとしてアプリケーションデリゲートに配信します。ディクショナリには、対応するCocoaプロパティリストオブジェクト(およびNSNull)が含まれています。

これをアプリに実装しましたが、すべて正常に動作します。アプリにフォーカスがある場合、アプリはメッセージを直接取得します。アクティブでない場合は、アラートが表示され、ユーザーがアラートをクリックするとアプリが起動し、最後にアプリがメッセージを保持します。

ただし、アプリがアクティブでないときにメッセージが到着した場合、iOSにアプリをアクティブにして、メッセージを表示したりユーザーの操作を必要とせずにメッセージを渡すことは可能でしょうか?

サーバーからのプッシュメッセージは、ユーザーの現在の位置によっては、ユーザーだけが関心を持つ可能性があるため、この動作が必要です。アプリは次のように機能します。起動すると、プッシュに登録し、サーバーに通知します。私はこの位置にいて、近くで何か面白いことが起こったときに通知を受け取りたいと思っています。後でサーバーがメッセージを送信しますが、ユーザーがそのエリアから移動した可能性があるため、アプリでユーザーの位置をもう一度確認し、ユーザーが元の位置から離れすぎている場合はユーザーに迷惑をかけないようにします。

n分ごとに現在位置をサーバーに通知するバックグラウンドサービスを利用することは可能だと思いますが、これによりバッテリーが消耗するのではないかと心配しています。

これについて何か考えはありますか?

4

1 に答える 1

1

残念ながら、iOSでは、通知を受信したときにアプリを直接開くことはできません。ユーザーは、システムによって表示されるアラートを介してそれを開くために自分自身を選択する必要があります。

ただし、バックグラウンドの場所を使用することは、それほどバッテリーに不利ではありません。これは、オブジェクトに設定した位置精度によって異なりCLLocationManagerます。

位置精度に関するすべての情報は、ここにあります:位置認識プログラミングガイド

あなたの場合、例えば、重要な場所の変更方法やkCLLocationAccuracyKilometer精度を使用したいかもしれません。

これが始めるための良いチュートリアルです:iOSマルチタスク:バックグラウンドロケーション

これがお役に立てば幸いです。

于 2013-02-28T11:52:31.153 に答える