2

サーバーに接続して新しいイベントや通知をリッスンする長いポーリング forge.request.ajax 呼び出しがあります。アプリがフォアグラウンドでアクティブになっている間は機能しますが、アプリがバックグラウンドになると機能しないようです。

forge.event モジュールの isPaused イベントを使用して、新しいリクエストが入ったときにバッジを更新しましたが、何も起こりません。アプリに戻ると、アプリがバックグラウンドにある間に送信された通知を受け取ります。

アプリがバックグラウンドにある間、longpoll ajax リクエストを開いたままにしておくことは可能ですか?

4

1 に答える 1

2

バックグラウンドにある間は、Trigger アプリからロング ポーリングを行うことはできません。

トリガー アプリがバックグラウンドになると、JS の実行が一時停止します。appPaused イベントのリスナーは、アプリがバックグラウンドに移行したときに呼び出されますが、いくつかの制約があります。

コールバックで実行できる内容は、プラットフォームによって異なります。

  • Android: 任意の JavaScript を実行できますが、タイマーはアプリが再開されるまで起動されない場合があります。これにより、アプリによる不要なバッテリーの使用が防止されます。
  • iOS: 実行には短い時間が与えられます。通常は、アプリが再開されるまでコールバックとタイマーが起動しない可能性があると想定するのが最善です。

これは Trigger 固有のものではありませんが、モバイル アプリ全般、特に iOS では、バックグラウンドで何かを実行できる時間についてかなり厳格です。この種の問題は通常、より信頼性が高く (アプリが強制終了されても動作し続ける)、よりバッテリーに優しいプッシュ通知を使用して対処されます。

于 2013-11-05T10:26:42.940 に答える