ユーザーは、あらかじめ定義されたデータベースと異なる時刻に1日に5回、正確になるようにユーザーに通知するプロジェクトを開発しています。私の問題は、これらすべての時間をどのようにスケジュールするか、5回* 365日= 1825発射日です!それらをすべてスケジュールすることは可能ですか?異なる時刻に毎日ローカル通知を発行する
任意のアイデアは非常に多くのAppleのドキュメントによると
ユーザーは、あらかじめ定義されたデータベースと異なる時刻に1日に5回、正確になるようにユーザーに通知するプロジェクトを開発しています。私の問題は、これらすべての時間をどのようにスケジュールするか、5回* 365日= 1825発射日です!それらをすべてスケジュールすることは可能ですか?異なる時刻に毎日ローカル通知を発行する
任意のアイデアは非常に多くのAppleのドキュメントによると
をいただければ幸いです。
アプリケーションは、スケジュールの通知だけ数が限られていることができます。システムは、(自動的にスケジュール変更通知は、単一の通知としてカウントして)最も早い発射64の通知を保持し、残り
私は通知の「キュー」を設定することで、その問題を解決し破棄します。たとえば、私のアプリでは、3種類の通知があります。タイプA、B、Cとだけ言いましょう。
次の月のA、B、C通知をスケジュールします。ユーザーがアプリを開くたびに通知の数を確認しました。例えば、それ以上のA通知ではない場合、アプリはより多くのA通知をスケジュールします。
どうすればいいですか?
通知をスケジュールするたびに、userInfo
プロパティを使用します。私はtype
というキーと値を持つ辞書を設定しました。
私のアプリケーションデリゲートでは、保留中の通知をすべてチェックし、各タイプの残数を数えます。コードは次のようになります。
NSArray *scheduledNotifications = [UIApplication scheduledLocalNotifications];
NSUInteger AType, BType, CType;
for (UILocalNotification *notif in scheduledNotifications) {
//Classify notifications by type
NSUInteger notifType = [[notif.userInfo objectForKey:@"type"]integerValue];
if (notifType == 0) {
AType++;
}else if(notifType == 1){
BType++;
}else{
CType++;
}
}
このタイプのカウントが0の場合、アプリはさらに多くの通知をスケジュールします。通知が表示されている場合
は最後に、例えば、毎日同じ時間に、あなたはrepeatInterval
プロパティ
を使用することができますが、あなたがあなた自身の繰り返し間隔を作成することはできません、あなただけの
NSCalendarUnit
で定義された繰り返し間隔を使用することができます。
希望します。
はい、同じようなものを使用しました。待ち行列の通知リストを作成し、アプリが開いたときにそれを歩いています。実際、このスキームでは、あなたのキューに「意味」が記録されているため、未通知の通知が1つしか必要ありません(ただし、通知が到着し、バッジ番号のものが期待どおりになるようにスケジュールするのは良いことです)。アプリは実行されていません)。 –
@Eduこれは私を大いに助けましたが、それは私の心にかかっていましたが、それを達成する方法はわかりませんでしたが、ユーザーが毎回アプリをポーズするたびに64未満の通知セットをスケジューリングすることにより、保留中の通知がないことを確実にするため、1825年は正確に同じ時間を次の年に繰り返すので、kCFCalendarUnitYearにrepeatIntervalプロパティを設定すると、来年、もっと通知をスケジュールする必要はありませんか? – 4mahmoud
はい、NSCalendarUnitがちょっと面倒なので、いくつかの通知を設定して、どのように動作するかあなた自身で確認することをお勧めします。私のiPhoneの日付を変更することで、repetitiveIntervalの使い方を知ることができます。そうすることをお勧めします。 repeatedIntervalを指定した通知はONE通知としてカウントされることも重要です。 :) – Edu
イベントキットフレームワークを使用して、リマインダー、イベント、アラームを追加することができます。試してみることができます。
1)UILocalNotificationのような通知制限はありません。
2)イベントキットを使用すると、時間ベースのイベントとロケーションベースのイベントの両方を追加できます。
3)プライバシーについても心配する必要はありません。
UILocalNotificationとEventKit両方がそれ自体で強力ですが...という
注:EventKitフレームワークのための上記のIOS 6または
は、それはあなたのニーズに応じて、そのいずれかを選択することができ件までです。
以下のリンクは、あなたの
Resource 2を良いヘッドスタートを与えます。
下の画像は、あなたに偶然キットがどれくらい良いかを示してくれます。
使用eventkitそれはあなたのニーズに合った場合。
地元の通知をバックグラウンドで処理する方法はありますか? – ilhnctn