在iOS EventKit中自定义日历事件/警报?

Era*_*dan 14 ios eventkit swift

我在写我的第一个iOS应用程序(我累了失踪事件提醒,并希望有一个基于规则的提醒,例如对某些日历和某些人,会响不同的,更大声地,10,5和0分钟活动前)

第一部分是访问日历,由于这个伟大的演示,我有这样的覆盖.让应用程序在我的iPhone上运行,我可以看到我的日历事件.

(好吧,第一部分是找出快速的,一般的iOS基础,我还在努力)

第二部分是我在花费数小时研究之前想问的地方.我还有两项任务要做

  1. 要么定期检查日历以获取新的/更新的事件,要么能够以编程方式订阅某种事件总线任何日历更新(新事件,事件更改)

  2. 在给定时间安排通知(我可能会使用此:如何为以下方案安排本地通知?)

我如何完成#1?

Leo*_*ica 6

如果没有改变设计,我认为这是不可能完成的.

应用程序通常不在后台运行,并且在Apple允许的特定情况之外(voip,音乐,位置等),您的应用程序将被暂停.有后台刷新API,但这不够可靠.

请注意,EKEventStoreChangedNotification通知仅在您的进程运行时才有效.如果您的进程死亡(由于内存压力,设备重启,用户终止应用程序等),您将不会收到有关应用程序启动时的更改的通知,您仍然需要迭代会议并查找更改,所以你必须开发自己的机制来迭代EventKit数据库(可能在一定的时间范围内).

如果它是个人应用程序,您可以采取一些技巧继续在后台运行,例如播放静音音乐文件,voip后台API,位置等).所有这些方法都可以让您的应用程序在后台运行,但会影响电池寿命,并且在提交时不会被Apple批准.拥有一致后台运行时的一种方法是让推送通知服务设置静默推送以定期唤醒应用程序,并让它执行其逻辑.这有可能启动应用程序,以防它在后台被杀死(但如果用户杀了它则不会).