转载自: https://stackoverrun.com/cn/q/9840500
我知道这个主题是重复的,但我需要你的帮助。这对我来说非常重要,其他职位对我来说没有真正的解决方案。
我有一个应用程序(Swift 2),其中用户可以将条目保存在核心数据中。这些条目将以表格形式显示。
用户必须为每个条目设置提醒日期(使用日期选择器)。此日期将用于本地通知的启动日期。 每个项目获取2个本地通知
第一把火日期:所选的日期前1周,第二把火日期:选择日期
的问题是64个本地通知苹果的限制。 用户只能保存32个条目(32个条目* 2个通知= 64个通知)
我该如何解决这个限制问题?
我知道我可以在Apple日历中设置“提醒”而不是本地通知。但这看起来不太好 - 这不应该是解决方案。
我知道我可以检查每个应用程序的开始或方法确实收到通知,接下来应该设置哪些通知。但为此我必须相信,用户启动应用程序或点击接收到的通知。如果他或她不这样做几天=>没有新的通知将被设置并且他或她没有得到下一个通知。这个解决方案不是很安全。
ios cocoa-touch uilocalnotification2,639
来源 分享
创建 29 2月. 16 GhostStack
2 答案
排序:
有效
最旧
投票
0
我也有过这样的问题。 所以我做的是我尽可能地计划了通知,并且当有空间来计划更多通知时,我计划了更多的通知。
UIApplication.sharedApplication().scheduledLocalNotifications?.count
您可以获得计划通知的数量。从64中减去并计划剩余的通知。
在applicationWillEnterForeground
你可以做到这一点 -
if UIApplication.sharedApplication().scheduledLocalNotifications?.count < 64
{
//refersh list
let nc = NSNotificationCenter.defaultCenter()
nc.postNotificationName(Constants.SCHEDULE_MORE_NOTIFICATION, object: nil)
}
所以您的通知列表会自动刷新。
来源 分享
创建 29 2月. 16 Mandeep Kumar
0
thx为您的答案 - 为什么我应该用这两行代码刷新列表? ,接下来的问题是,如果用户做了32个条目 - 达到了通知限制,那该怎么办?然后他创建一个新条目,这将是最快的通知,但没有更多空间来注册通知了吗? – GhostStack 29 2月. 16
0
好吧,一旦有新的通知空间,你就必须注册新的通知,除非你不能,所以建立一个好的队列或任何数据结构并不断刷新列表 – Mandeep Kumar 29 2月. 16
0
这个话题对我来说是非常新的。你能告诉我一个例子吗? :) – GhostStack 29 2月. 16
1
你可以定期发送推送通知给没有联系了一段时间的后端,并具有远程通知处理程序设置本地通知到了极限的设备,看application(_:didReceiveRemoteNotification:fetchCompletionHandler:)。
或者,您可以设置一个后台提取,使用时重新安排本地通知,参见application(_:performFetchWithCompletionHandler:)。请注意,您无法完全控制此刷新的执行频率,但根据我的经验,它每天都会调用多次。
使用上述任一方法时,即使用户从不打开应用程序,也可以更新本地通知。