5

バックグラウンドで実行される基本的な位置追跡アプリを作成しました。(バックグラウンド スレッドだけでなく、デバイスが暗い場合。) UIBackgroundModes キーを設定しましたが、この部分はうまく機能して、画面に場所を書き込んでいます。

次に、それらの場所を処理する必要があります。場所やその他の基準に基づいて、アプリは HTTP の get または post を介してサーバーに情報を時々送信する必要があります。いくつかの課題があります。

  1. アプリがバックグラウンドにある場合でも、メッセージをサーバーに送信する必要があります。

  2. メッセージが生成されたときにデバイスがオフラインであっても、メッセージをサーバーに送信する必要があります (ユーザーは、GPS 位置情報を取得している間、セルの範囲外にいることがよくあります)。もちろん、メッセージをすぐに送信する必要はありませんが、メッセージを保存して、デバイスがオンラインに戻ったときに送信する必要があります。

  3. メッセージが最初の試行に失敗した場合は、あきらめる前に数回再送信する必要があります。

これら 3 つのことを処理する方法を計画するためのヘルプを探しています。

このアプリは iOS6 以降を対象としています。

私は新しい iOS 開発者ですが、Android 用の非常によく似たアプリを開発しました。私は一般的なアドバイスと戦略を探しています - たまたますでにそこにある場合を除き、コードではありません。これを処理したり、その側面を支援したりするクラスまたはフレームワークが既に存在するかどうかを知るには、iOS / Objective C についてまだ十分に知りません。「サーバーにデータを送信する方法」の例をたくさん見てきましたが、それは私が探しているものではありません。代わりに、どのクラスまたはシステムが接続/コマンドの再試行を管理するのに役立つか、バックグラウンドでこれを処理する方法などへのポインターが必要です。また、注意すべき問題の警告も役に立ちます。アドバイスありがとうございます。

4

3 に答える 3

0

バックグラウンド操作を実行するには、まずプロジェクトでバックグラウンド モードを定義する必要があります。

この簡単なチュートリアルを読む

この手順を既に行っている場合は、locationManager のコールバック メソッドにコードを追加するだけで済みます。データを送信する場合は、サーバーへのリクエストを実行する行をいくつか追加します。リクエストを頻繁に実行することは避けてください。

リクエストが失敗した場合、配列またはある種のキューにデータを格納できます。送信操作を実行するたびに、保存されたデータ全体を送信しようとすることができます。

于 2013-08-29T22:47:55.453 に答える