1

ネイティブ カレンダー アプリケーションのような iOS アプリケーションに取り組んでいます。アプリケーションは、ネイティブのカレンダー データベースからデータを同期します。また、開始時刻の前 (10 分前など) に、各カレンダー エントリ/会議のローカル通知をトリガーします。

私たちが直面している以下の問題について誰か助けてください。

1) ネイティブのカレンダー データベースに変更があるとすぐにアプリケーションが更新されるようにするにはどうすればよいですか。新しい会議があるとき、または既存の会議の予定が変更されたときはいつでも、カスタム コードを呼び出す必要があります。App Foreground 通知をサブスクライブすることでこれを実現できることは理解していますが、アプリケーションがバックグラウンドであってもコードを実行する方法はあります。

2) すべての会議の 10 分前にローカル通知をトリガーするための最良の方法は何ですか? バックグラウンド サービスを実行し、次の 10 分間に会議があるかどうかを定期的に確認する必要がありますか? または、すべてのローカル通知を一度にスケジュールする必要があります。ただし、この場合、アプリがバックグラウンドである間に会議が再スケジュールされる可能性がある場合、または新しい会議が発生した場合の処理​​方法がわかりません。

4

2 に答える 2

2
  1. アプリはバックグラウンドで実行するためのカテゴリに分類されないため、できません。
  2. iOS でバックグラウンド サービスを実行することはできません。アプリの実行中にローカル通知をスケジュールする必要があります。ただし、最大 64 個のスケジュールされたローカル通知があることに注意してください。これはアプリではなく iOS によって処理されるため、通知がいつ表示されるかはわかりません。

最適なオプションは、プッシュ通知を使用することです。これらはサーバー側であるため、スケジュールされた 64 の制限はありません。イベントが変更されたときのプッシュ通知オプションを使用すると、サーバーだけがそれについて知る必要があります。それは通知を送信するものだからです。

別のオプションEventKitとして、ユーザー カレンダーでイベントを使用してスケジュールすることもできます。

于 2013-05-27T07:24:41.797 に答える
0

あなたはこれに対する答えを気に入らないでしょう。ジェイルブレイクされていない環境では、答えは次のとおりです。

1) できない

2) 唯一の選択肢は、すべての会議を一度にスケジュールすることですが、それではあなたが言及した問題が発生する可能性があります。

于 2013-05-27T07:24:01.297 に答える