2017-02-08 7 views
1

私は、毎日の通知をユーザーに送信する "健康"アプリを作っています。 1日あたりの通知数は、現在の日(最初の使用から2日目など)によって異なります。また、「健康」練習期間も現在の日によって異なります(その時間の後に別の通知を送信して、 )。アプリが死んだときの毎日のローカル通知の設定

64件以上の通知を計画できないことを知っている私は次のことを試しました:1.ユーザーがアプリパラメータを選択したときの現在の曜日と翌日の通知を設定し、次にバックグラウンドフェッチ1日に少なくとも1回であれば、どれくらいの頻度であっても)。

しかし、ユーザーがマルチタスクリストからアプリを削除しても、バックグラウンドフェッチは実行されないため、これは機能しません。

私の「次の日」通知を計画するには、ユーザーがアプリを開いて強制的にアプリを開くことを余儀なくされることはありませんか?アイデアは、ユーザーが毎日程度にアプリを開くことなく、プログラムに従うことができるということです。

私は、アプリを開かなくてもコードを実行できることを知らせる静かなプッシュ通知を見たことがあります。プッシュキットはこのトリックを行うことができますが、私のアプリはVoIPアプリケーションではないため、拒否できます...

誰にもこの問題の解決策がありますか?

ありがとうございます。

+1

サイレント通知のためにpushKitは必要ありません。参照してください:http://stackoverflow.com/questions/39625687/apple-rejection-after-implementing-silent-notifictaions-with-pushkit – shallowThought

答えて

1

サイレントプッシュ通知を送信するためにVoIPは必要ありません。 VoIPアプリは静かにプッシュしていますが、通常のサイレントプッシュとは異なり、ユーザーがアプリを強制終了してもアプリに配信されるため、通常のサイレントプッシュより優れています。

サイレントプッシュの欠点は、それがアプリに配信されることはありません時にいくつかの状況があるということです。 - ユーザーは、彼らに を無効にすることができます - 長いアクティブな電話がある - ユーザーがアプリ を終了しました現時点でのプッシュが 送信されます - デバイスは オフラインになることがあります - などなど

したがってサイレントプッシュに使用することはできませんあなたのアプリは、毎日走ることを確認してください。

あなたのケースでは、最終的に通知されているユーザーであるため、サーバーがユーザーからの直接的なプッシュを送信することは可能ですか?私は、サーバが通知コンテンツに何を入れるべきかを知るために利用可能な情報を持っている可能性がありますか? (ユーザーがアプリを終了しても、ユーザーが指定したプッシュは引き続きユーザーに配信されます)。

サーバーにこの情報がない場合は、プッシュ拡張機能を考慮する必要があります。 プッシュ拡張機能を使用すると、ユーザー指定のプッシュを傍受し、その内容をユーザーに表示する前に変更または更新することができます。こうすることで、アプリが終了しても毎日プッシュ通知がユーザーに表示されるようになります(ただし、ユーザーがアプリの通知を無効にすることができます)。 プッシュの拡張機能はアプリの完全な部分ではないので、これは難しいかもしれません。アプリと拡張機能は、グループに格納されている場合、基礎となるデータを共有できます。

毎日サーバーがユーザー指定のプッシュを送信する可能性があります。これは内線番号によって傍受され、内線番号が実行され、プッシュの内容を決定します。プッシュはユーザーに表示されます。

これらはいくつかのオプションです。あなたの要件の正確な詳細を知っているだけが正しいかどうかはわかりません。

+0

あなたの答えはとてもきれいです@Gruntcakesありがとうございます。内容はかなり単純ですので、サーバーに情報があるかもしれません。この場合、サーバは、ユーザが健康番組に入ってから適切な時間/正しい回数でプッシュ通知をスケジュールするため、ユーザが日に関する情報も取得する必要があります。私はそれを試みるつもりです! Appleがアラーム付きのAndroidのように1日に1回少数のコードを実行することを許可していないのはかなり悪いことだ... – CharlyStudio

0

なく、いくつかの方法でユーザーを介さずにそう

を行うには、アプリを開くようにユーザーを強制することなく、私の「翌日」の通知を計画するとにかくがあります。ユーザーが少なくとも通知のアラートにをタップすると確信できる場合、アプリは召喚される(必ずしもフォアグラウンドではない)可能性があり、応答してコードを実行することができます。

あなたのアプリが毎日実行されることを確認する方法は、いつでも実行されるサーバーからの衝動であるため、プッシュ通知です。もちろん、それは100%確実ではありません。

関連する問題