从服务器监听 iCal 事件变化

Listen to iCal event changes from server

我正在为日历应用程序构建服务器端。客户端仅 iOS。最初的计划是应用程序会知道 iCal 事件的变化,然后告诉服务器。但这可能是提醒的问题(通过 Parse Push)。例如,如果事件向前推进,则提醒应该更早出现。

是否可以从服务器端收到有关 iCal 事件的通知?例如,当用户 create/update/delete 发生 iCal 事件时,我想从服务器上抓取此信息。这可能吗?还是一切都需要通过 运行 的本机应用程序来完成?

我的服务器目前在 parse.com。但如果需要,我可以使用单独的服务器,比如 NodeJS。

由于 iCal user/device 依赖,除非用户已将其日历事件与 iCloud 同步。在第二种情况下,用户已激活日历事件的同步,end-user 将他的 icloud 详细信息共享到其他服务器是完全不安全的。

如何在后端创建 1 API,这将 update/delete 从应用程序请求日历事件,并在后台进程中更新 Parse 通知事件。为此,您还可以在 NodeJS 或任何其他技术栈中编写自定义的 Parse api。

并且在应用程序中,您可以使用事件工具包将事件与 iCal 同步:

https://developer.apple.com/library/mac/documentation/DataManagement/Conceptual/EventKitProgGuide/ReadingAndWritingEvents.html#//apple_ref/doc/uid/TP40004775-SW1

首先,您需要能够让iOS在后台唤醒您的应用程序运行,这需要将您的应用程序分类为Apple Background Execution中规定的模式之一],我认为 "Background fetch" 适合您的情况,然后在您的 application:performFetchWithCompletionHandler: 中,您可以检查日历数据库以了解已更改的事件并对服务器进行必要的更新。

我不确切知道这是否可能,但我认为这很难,因为我仍然没有找到苹果提供的任何 library/any 功能。 但我放了一个 link 可能对你有帮助。请检查。

http://kb.kerio.com/product/kerio-connect/os-x/support-for-apple-ical-calendar-using-the-caldav-standard-1494.html

我认为这是你最好的选择:

在该答案中提到的 storeChanged: 方法的实现中,您应该遍历所有事件,检测任何更改并将它们提交到服务器。