4

サーバーに定期的にデータを送信する iOS 用のアプリを作成する必要があります (たとえば、GPS の場所)。ユーザーが本当に気づいていない悪魔のような解決策を探しています...

それは可能ですか?私のオプションは何ですか?

私はすでにこれを調査しようとしましたが、これらのオプションを思いつきました:

  • ロケーション指向のアプリとして、Apple はバックグラウンドでの実行を承認する場合があります。彼らに承認してもらうのはどれくらい難しいですか?ユーザーはアプリを閉じることはできませんか?

  • プッシュ通知を使用して、アプリをトリガーして更新を送信します。それは可能ですか?通知が届いたときに呼び出されるコールバックをデバイスで定義できますか?

私が考えていなかったかもしれない他のアイデアはありますか?

そしてもう1つ-このアプリは企業内での内部使用を意図しているため、App Storeにある必要はありません-それが可能であれば、または違いが生じる場合.

4

1 に答える 1

3

まあ、直接的な答えではありません。しかし、あなたの質問を読んだ後のいくつかの考え。

ユーザーが本当に気づいていない悪魔のような解決策を探しています...

アプリが voip を使用する場合を除き、ユーザーの操作なしでサードパーティのアプリケーションを起動することはできません。「voip」を使用するアプリケーションは、ユーザーの操作なしでシステムの起動時に開始できます。

ユーザーはアプリを閉じることはできませんか?

ドキュメントから

iOS SDK 4 以降を使用してアプリを開発したとしても、通知なしでアプリが強制終了されることに備えておく必要があります。 ユーザーは、マルチタスク UI を使用してアプリを明示的に強制終了できます。さらに、メモリが制限されると、システムはメモリからアプリを削除して空き容量を増やすことがあります。中断されたアプリには終了が通知されませんが、アプリが現在バックグラウンド状態で実行されている (中断されていない) 場合、システムはアプリ デリゲートの applicationWillTerminate: メソッドを呼び出します。アプリは、このメソッドから追加のバックグラウンド実行時間を要求できません。

アプリがマルチタスク バーに表示されないようにする方法はありません。マルチタスクバーにある場合、ユーザーはそれを自由に終了できます。

ユーザーは、位置情報サービスの使用を停止することもできます..

あなたが行ったすべての調査の後、あなたはそれを知っていると確信しています..ユーザーは、初めて使用するときに位置情報サービスの使用を無効にすることができます。OS は許可を要求しているユーザーにアラートを表示し、ユーザーは簡単にNOをクリックできます。私が言ったように、私はあなたがこれを知っていると確信しています。

わかりました。上記の点を念頭に置いて、これらを行うことができると思います。

1) コア ロケーションには、リージョン モニタリングを実行する機能があります。

ドキュメントから

アプリは、リージョン モニタリングを使用して、ユーザーが地理的な境界を越えたときに通知を受けることができます。この機能を使用して、ユーザーが特定の場所に近づいたときにアラートを生成できます。たとえば、特定のドライ クリーニング店に近づくと、アプリはユーザーに、降ろされて準備が整った衣服を受け取るように通知できます。iOS では、アプリに関連付けられているリージョンは、アプリが実行されていないときも含めて常に追跡されます。アプリが実行されていないときにリージョンの境界を越えた場合、そのアプリはバックグラウンドで再起動され、イベントを処理します。同様に、イベントが発生したときにアプリが一時停止されている場合は、アプリが起動され、イベントを処理するための短い時間が与えられます。

アプリがバックグラウンドで定期的に実行されるように、何らかの方法でリージョン設定を操作できるかどうかを確認してください。それは一つの選択肢です。

2) 重要な変化の監視機能を使用します。

同じドキュメントから..

大幅に変更された位置情報サービスは、セルラー無線を備えたデバイスに低電力の位置情報サービスを提供します。このサービスは iOS 4.0 以降でのみ使用でき、一時停止中または実行されていないアプリを起動することもできます。

この大幅な変更値をどの程度カスタマイズできるかはわかりません。ただし、これにより、アプリがバックグラウンドで起動することもできます。

3) バックグラウンドで標準の位置情報サービスをリクエストして、バックグラウンド位置情報サービスが必要であることをアプリに宣言できます。

この場合、動作するためのバックグラウンド許可を要求しています。たとえば、X 秒後に位置を確認し、更新をサーバーに送信する必要があります。たとえば、位置情報にアクセスしてサーバーにリクエストを送信しようとすると、OS がアプリケーションを強制終了する可能性があります。GPS は多くのメモリを消費し、バックグラウンド アプリが継続的にインターネットにアクセスできるとは思えません。しかし、それについてはわかりません。

もう1点

プッシュ通知を使用してアプリをトリガーして更新を送信する

ただし、通知が来ると、プッシュ通知はアラート/バッジを表示するか、音を鳴らします(私の理解が正しければ)。それはあなたが求めているものではありませんか?また、定期的に起動するためだけにプッシュ通知を使用する必要はありません。ローカル通知を使用して、サーバーをそれから遠ざけることができます。

最初の 2 つは、(通知に従って) バックグラウンドで開くことができるため、実際には唯一のオプションだと思います。

幸運を!!

于 2012-12-19T10:33:09.697 に答える