0

この質問は、以前の質問(応答がありませんでした)の拡張/代替です。プッシュ通知を達成しようとする代わりに、定期的にサーバーをポーリングしても問題ありません。ただし、このポーリングは、バックグラウンド タスクに割り当てられている 10 分を超えて継続する必要があります。

iOS に時限タスクのようなものはありますか (cron-jobs / daemons を考えてください)?

私が考えることができるもう 1 つのねじれた方法は、Twitter フレームワークをアプリに統合し、サーバーにダイレクト メッセージを送信させると、アプリが起動するかどうかということでした。通知が受信された場合、iOS がどのアプリに通知を配信するかをどのように判断するかという点で、これは本当に不自由に聞こえることを私は知っています...

ありがとう、そしていくつかの返信を期待しています:)

4

2 に答える 2

0

何をしようとしてもプッシュ通知を使用しないのはなぜですか?アーバンエアシップでは、基本プランで月額1000000件のプッシュメッセージを無料で送信できるようです。

とにかく、他の方法は考えられません。

于 2012-10-25T04:26:55.457 に答える
0

あなたが達成しようとしているのは「いいえ」である可能性が非常に高いですが、当時はかなりハックなことをしていたので、これはうまくいくかもしれませんし、うまくいかないかもしれません(保証はありません):

アプリが通知を受け取ると、アプリ デリゲートの applicationDidLoad() メソッドがトリガーされ、通知オブジェクトが「launchOptions」パラメーターに格納されます。

この方法では、サーバーをポーリングするアクションを実行できる場合があります。

だから私が考えていたのは、あなたが望む日付に起動するようにローカル通知を設定することでした。ローカル通知はプッシュ通知のようなもので、アプリが終了した (バックグラウンド プロセスから強制終了された) 場合でも実行できます。

次に、アプリ デリゲートの didFinishLaunchingOptions() で、それが一致する通知かどうかを確認し、一致する場合は、desir サーバーのポーリング ロジックを実行し、そうでない場合は無視します。

注: サーバーのポーリング ロジックが別のビュー コントローラーにある場合は、実際にタブをクリックして表示するまで、これらのビュー コントローラーが実際に開始されない可能性があることに注意してください。アプリが終了して実行されていないため、明らかにタブをタップできません。

2 番目のハックは、サーバー ポーリング ロジックを含むビュー コントローラーの getter "view" メソッドを呼び出すことです。

// force iOS to initialize the view controller
[MyCustomVC view];

ご覧のとおり、非常にハックであり、お勧めできません。

于 2012-10-25T05:09:54.767 に答える