我正在开发一个项目,每天在不同的时间从预定义的数据库通知用户,准确地说是一天五次。
我的问题是如何安排所有这些时间,5times*365days = 1825
开火日期!是否可以全部安排?
任何想法将不胜感激
我正在开发一个项目,每天在不同的时间从预定义的数据库通知用户,准确地说是一天五次。
我的问题是如何安排所有这些时间,5times*365days = 1825
开火日期!是否可以全部安排?
任何想法将不胜感激
根据苹果文档:
一个应用程序只能有有限数量的预定通知;系统保持最快触发的 64 个通知(自动重新安排的通知计为单个通知)并丢弃其余通知
我通过设置通知“队列”解决了这个问题。例如,在我的应用程序中,我有三种不同类型的通知,我们只说类型 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++;
}
}
如果任何类型的计数为零,则应用程序会安排更多通知。
最后,如果显示通知,例如,每天在同一时间显示,您可以使用该repeatInterval
属性但您不能创建自己的重复间隔,您只能使用定义的重复间隔NSCalendarUnit
。
希望能帮助到你。
您可以尝试使用可以添加提醒、事件、警报的Eventkit框架。
1)它没有像UILocalNotification那样的通知数量限制。
2)使用事件套件,您可以添加基于时间和基于位置的事件。
3)您也不必担心隐私。
虽然 UILocalNotification 和 EventKit 本身就很强大..
注意:iOS 6 或更高版本适用于 EventKit 框架
您可以根据自己的需要选择哪一种。
以下链接将为您提供良好的开端
资源 2。
下面的图片将让您很好地了解 evenkit 是什么。
如果它适合您的需要,请使用 eventkit。