从服务器收听iCal事件更改

时间:2015-12-18 06:25:14

标签: ios node.js parse-platform icalendar

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

是否可以从服务器端通知iCal事件?例如,当用户创建/更新/删除iCal事件时,我想从服务器获知该信息以获取此信息。这可能吗?或者一切都需要通过运行的本机应用程序完成吗?

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

4 个答案:

答案 0 :(得分:5)

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

如何在后端创建1个API,它将更新/删除来自Apps的日历事件请求,并在后台进程中更新Parse通知事件。为此,您还可以在NodeJS或任何其他技术堆栈中编写自定义的Parse apis。

在应用中,您可以使用Event Kit将事件与iCal同步:

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

答案 1 :(得分:3)

首先,您需要让iOS唤醒您在后台运行的应用,这需要将您的应用分类为Apple Background Execution中所述的模式之一,我认为"背景取"在您的情况下是合适的,然后在application:performFetchWithCompletionHandler:中,您可以检查日历数据库中是否有更改的事件,并对服务器执行必要的更新。

答案 2 :(得分:1)

我认为这是你最好的选择: https://stackoverflow.com/a/23997912/1967872

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

答案 3 :(得分:0)

我不知道确切的可能与否,但我认为这很难,因为我仍然没有找到任何库/苹果提供的任何功能。 但我正在提供一个可能对您有所帮助的链接。请检查一下。

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