gpt4 book ai didi

ios - 在 iOS 10 上以编程方式邀请事件参与者

转载 作者:行者123 更新时间:2023-12-01 19:56:53 27 4
gpt4 key购买 nike

我已经使用 Stackoverflow 大约 5 年了,还没有觉得有必要问一个问题,我总是通过以前的线程找到我需要的答案。那只是改变了,我有一个我真的无法弄清楚的问题。这听起来很容易做到。
所以问题是;您如何在 iOS 10 下邀请与会者或回复/拒绝 iOS 上的日历事件?拜托,不,我们不想调出 EKEventViewController。我们想在我们自己的 UI 中做到这一点。在 iOS 9 下,这可以通过使用 setValueForKey: 将 EKAttenees 对象强制放入 EKParticipants 数组中来实现。但在 iOS 10 下,这会产生一个错误,提示“无法修改与会者”。
我使用了 Apple 的技术支持信用,并得到答复说这是不可能的。使用他们的 API 是不可能的。
我得到的最接近答案的是使用 IMIP (https://www.rfc-editor.org/rfc/rfc6047#section-2.2.1)。如果这是要走的路,有人可以帮助我如何实际设置它吗?我不精通后端开发,我都是前端,所以我真的不知道从哪里开始。
GitHub 上似乎也有一些 CalDav 服务器(https://github.com/mozilla-b2g/caldav),但我不确定它们有多好,或者你需要设置一个。
所以基本上,有没有人可以解释一下我们如何才能向日历事件发送漂亮的邀请。如果 Google 有不同的解决方案,Apple 帐户(显然是在幕后,但在实现方面)知道这将非常有帮助。
这是否需要在我们自己的服务器上进行大量实现,或者是否有一些可靠的服务可供使用?那将是理想的。也许您应该 build 一个,并且您在这里至少有一个客户:-)
感谢任何帮助!

最佳答案

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

I have used a Technical Support credit with Apple and got the reply that this was not possible. It is not possible using their APIs.



使用 KVC 访问内部对象的 hack 是一种 hack,并且没有记录在案的 API。毫不奇怪他们杀了那个。

那么日历邀请如何工作。这本身就是一个非常复杂的话题(考虑委托(delegate)、房间等资源预订等)。有一个完整的联盟致力于此( CalConnect),他们也有一个广泛的概述: Introduction to Internet Calendaring and Scheduling .
如果您对计划/日历软件很认真,那么加入 CalConnect 参加他们的互操作事件等可能很有意义。

但你想要一个“ child 的解释”。我不能给出那个,但一个简短的概述。

iTIP

iTIP 是一个标准,它定义了调度消息如何流动,例如您向与会者发送消息,您的与会者回复接受/拒绝,如果 session 被取消会发生什么等等。

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

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

iMIP

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

很多系统都支持 iMIP,并且很长一段时间以来,iMIP 几乎是在不同系统(例如 Outlook 和 Lotus Notes)之间交换邀请的唯一方式。

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

卡尔达夫

CalDAV 是一组围绕存储在服务器上的日历的标准。许多服务器支持 CalDAV。例如。 iCloud 使用 CalDAV。雅虎、谷歌等都支持 CalDAV。重要的异常(exception)是 Exchange,它不支持它。

在其基本设置中,CalDAV 只是充当存储。您可以使用 HTTP 使用 iCalendar 格式存储(PUT)和检索(GET 等)事件和待办事项。

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

交换

Exchange 支持 iMIP 但不支持 CalDAV。您通常使用它自己的 Web 服务 API 之一来访问它,例如ActiveSync 或 Exchange Web 服务。我不是他们的专家,但我确信他们允许您创建邀请。 Exchange&Outlook 有类似邀请流程的 iTIP。

ETC

Is this something that requires a ton of implementation on our own servers or is there some reliable service to use?



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

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

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

关于ios - 在 iOS 10 上以编程方式邀请事件参与者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42023140/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com