【问题标题】:Accessing events in "Events Found in Mail" calendar访问“在邮件中找到的事件”日历中的事件
【发布时间】:2015-10-16 08:11:35
【问题描述】:

我正在尝试使用 iOS 9 中的新主动助手功能访问从电子邮件自动创建的事件。这些事件显示在“邮件中的事件”日历中。

要访问这些,我正在执行以下操作

self.eventStore.requestAccessToEntityType(.Event, completion: { (granted, error) -> Void in

    let predicate = eventStore.predicateForEventsWithStartDate(NSDate(timeIntervalSince1970: timestamp1), endDate: NSDate(timeIntervalSince1970: timestamp2), calendars: nil)
    let events = eventStore.eventsMatchingPredicate(predicate)

}

但是,此日历中的事件未列出。这是来自 Apple 的限制,还是我可以通过任何其他方式访问它们?

【问题讨论】:

    标签: ios objective-c iphone swift eventkit


    【解决方案1】:

    我可以向苹果工程师提出这个问题,他们的回答是出于隐私原因,他们不会公开此日历。他们希望用户将从邮件中解析的事件添加到他们的一个普通日历中,以确认他们想要将其公开给其他应用程序,这就是为什么这个日历在平时不可见的原因

     let calendars = store.calendarsForEntityType(EKEntityTypeEvent)
    

    【讨论】:

    • 非常感谢。你是一个快速的大师
    【解决方案2】:

    我不确定这是否是 Apple 的限制,但一般来说,如果您知道日历的名称,您可以像这样访问它:)

    func yourFunc(store: EKEventStore) {
    
        let calendars = store.calendarsForEntityType(EKEntityTypeEvent)
            as! [EKCalendar]
    
        for calendar in calendars {
    
            if calendar.title == "Events Found in Mail" {
           //Do something!}}}
    

    尝试这些方法!

    【讨论】:

    • 感谢您的回答。我试过了,但不幸的是日历没有出现在日历列表中
    猜你喜欢
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    相关资源
    最近更新 更多