我正在开发一个项目,每天在与预定义数据库不同的时间通知用户,每天五次是准确的。
我的问题是如何计划所有这些时间,5times*365days = 1825
开火日期!!是否可以安排所有人?
任何想法都会非常感激
答案 0 :(得分:13)
根据Apple文档:
应用程序只能有有限数量的预定通知;系统保持最快的64次通知(自动重新安排的通知计为单个通知)并丢弃其余的通知
我通过设置通知的“队列”解决了这个问题。例如,在我的应用程序中,我有三种不同类型的通知,我们只说A,B和C类型。
我计划下个月的A,B和C通知,每次用户打开应用程序时,我都会检查剩下多少通知。例如,如果不再是A通知,则应用程序会安排更多A通知,依此类推。
我是如何实现这一目标的?
每次我安排通知时,都会使用userInfo
属性。我使用名为type
的密钥和值设置字典。
在我的app委托中,我检查所有待处理的通知,并计算每种类型的剩余数量。代码如下所示:
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++;
}
}
如果任何类型的计数为零,则应用程序会安排更多通知。
最后,如果显示通知,例如,每天同一时间你可以使用repeatInterval
属性但你不能创建自己的重复间隔,你只能使用NSCalendarUnit
中定义的重复间隔。
希望它有所帮助。
答案 1 :(得分:1)
您可以尝试使用 Eventkit 框架添加提醒,事件和警报。
1)它没有像UILocalNotification那样的通知限制数。
2)使用事件工具包,您可以添加基于时间的基于位置的事件。
3)您也不必担心隐私。
虽然UILocalNotification和EventKit本身都很强大。
请注意:EventKit框架的ios 6或更高版本
根据您的需要选择哪一个。
以下链接将为您提供良好的开端
下面的图片将为您提供一个很好的查看evenkit的内容。
如果符合您的需要,请使用eventkit。