在iOS 10上以编程方式邀请活动参与者

在iOS 10上以编程方式邀请活动参与者,ios,server,eventkit,ekevent,caldav,Ios,Server,Eventkit,Ekevent,Caldav,我已经使用Stackoverflow大约5年了,还没有觉得有必要问一个问题,我总是通过前面的线程找到我需要的答案。这一切都变了,我有一个问题真的想不出来。这听起来很容易做到 所以问题是,;如何在iOS 10下邀请与会者或回复/拒绝iOS上的日历活动?请不要,我们不想使用EKEventViewController。我们希望在我们自己的用户界面中实现这一点。在iOS 9下,只需使用setValueForKey:将ekAttendeers对象强制放入ekAttenders数组,就可以实现这一点。但在i

我已经使用Stackoverflow大约5年了,还没有觉得有必要问一个问题,我总是通过前面的线程找到我需要的答案。这一切都变了,我有一个问题真的想不出来。这听起来很容易做到

所以问题是,;如何在iOS 10下邀请与会者或回复/拒绝iOS上的日历活动?请不要,我们不想使用EKEventViewController。我们希望在我们自己的用户界面中实现这一点。在iOS 9下,只需使用setValueForKey:将ekAttendeers对象强制放入ekAttenders数组,就可以实现这一点。但在iOS 10下,这会产生一个错误,即“不能修改与会者”

我使用了苹果的技术支持信用,得到的答复是这是不可能的。使用他们的API是不可能的

我得到的最接近的答案是使用IMIP()。如果是这样的话,有人能帮我设置一下吗?我对后端开发不是很精通,我完全是前端,所以我不知道从哪里开始

GitHub()上似乎也有一些CalDav服务器,但我不确定它们有多好,也不确定您需要设置什么

所以,基本上,有没有人能给孩子们解释一下,我们怎么能给日历上的活动发送好的邀请呢。如果有不同的谷歌、苹果账户解决方案(显然是在幕后,但在实施方面是明智的),那么了解这些解决方案将非常有帮助

这是否需要在我们自己的服务器上大量实现,或者是否有可靠的服务可供使用?那将是理想的。也许你应该建立一个,你至少有一个客户在这里:-)


谢谢你的帮助

您不能使用EventKit修改与会者,但Apple已经告诉您:

我使用了苹果的技术支持信用,得到的答复是这是不可能的。使用他们的API是不可能的

使用KVC访问内部对象的黑客行为是一种黑客行为,没有记录在案的API。难怪他们杀了那个

那么日历邀请是如何工作的呢。这本身就是一个非常复杂的话题(考虑委派、资源预订,如房间等)。有一个完整的财团致力于这一点(),他们也有一个广泛的概述:。 如果您对日程安排/日历软件很感兴趣,那么加入CalConnect进行互操作活动等可能会很有意义

但你想要一个“孩子的解释”。我不能给出,但简要概述一下

iTIP iTIP是一个标准,它定义了日程安排消息的流程,例如,您向与会者发送消息,与会者以接受/拒绝回复,会议取消时会发生什么等等

但是,它没有指定如何传输这些消息。这只是组织者和参与者之间信息流工作方式的一个模型

大多数“大型”日历系统(Exchange、Google、CalDAV服务器,如iCloud)都使用iTIP或至少类似的工具

iMIP iMIP是一个标准,它定义了如何使用电子邮件交换iTIP消息。假设如果您使用iMIP邀请某人,您将向他发送一封包含邀请的iCalendar负载的特殊电子邮件。如果您的与会者接受,他的客户将通过包含该内容的电子邮件发回另一个iCalendar有效负载

iMIP受到许多系统的支持,在很长一段时间内,它几乎是在不同系统(比如Outlook和Lotus Notes)之间交换邀请的唯一方式

但是:iOS电子邮件客户端不支持iMIP(与macOS或Outlook不同)。因此,如果有人向您的iOS设备发送iMIP邀请,您将无法响应。(现实更复杂,但基本上就是这样)

卡尔达夫 CalDAV是一组关于存储在服务器上的日历的标准。许多服务器支持CalDAV。例如,iCloud使用CalDAV。雅虎、谷歌等都支持CalDAV。重要的例外是Exchange,它不支持它

在其基本设置中,CalDAV只是作为一个存储。您可以使用HTTP使用iCalendar格式存储(放置)和检索(获取等)事件和TODO

此外,许多CalDAV服务器(如iCloud)执行“服务器端调度”。也就是说,如果您将一个事件存储到服务器,而该服务器是一个会议(具有与会者属性),则服务器将扇出邀请。如果与会者住在同一台服务器上,则可以在内部使用,也可以再次使用iMIP

交换 Exchange支持iMIP,但不支持CalDAV。您通常使用它自己的web服务API(例如ActiveSync或Exchange web服务)访问它。我不是这方面的专家,但我确信它们允许您创建邀请。Exchange和Outlook具有类似iTIP的邀请流

等 这是否需要在我们自己的服务器上大量实现,或者是否有可靠的服务可供使用

这实际上取决于您的需求。您需要处理回复还是只发送一般事件? 如果您想托管日历存储,那么使用现有的CalDAV服务器可能是有意义的

日历邀请是一个非常复杂的主题,您需要非常具体地根据您的实际需求来找到解决方案。总的来说,2017年的互操作邀请仍然是“困难的”

注:既然你已经使用StackOverflow大约5年了,你应该知道这个问题对于这个东西来说太广泛了