Monotouch - 从我的应用程序添加事件到iphone日历

时间:2010-03-03 14:44:54

标签: iphone calendar xamarin.ios

我的应用程序是否可以以编程方式将事件(经用户许可)添加到iphone日历中?

欢呼声

瓦特://

4 个答案:

答案 0 :(得分:5)

它可以在iPhone 4 SDK中使用,所以在Monotouch中。看看EKEventStore和EKEvent。 Here's the Apple docs

以下是我保留的a snippets page示例:

public void CalendarEvents()
{
    EKEventStore store = new EKEventStore();
    EKCalendar calendar = store.DefaultCalendarForNewEvents;

    // Query the event
    if (calendar != null)
    {
        // Searches for every event in the next year
        NSPredicate predicate = store.PredicateForEvents(NSDate.Now,DateTime.Now.AddDays(360),new EKCalendar[] {calendar});

        store.EnumerateEvents(predicate, delegate(EKEvent currentEvent, ref bool stop)
        {
            // Perform your check for an event type
        });


        // Add a new event
        EKEvent newEvent = EKEvent.FromStore(store);
        newEvent.Title = "Lunch at McDonalds";
        newEvent.Calendar = calendar;
        newEvent.StartDate = DateTime.Now.Today;
        newEvent.EndDate = DateTime.Now.Today.AddDays(1);
        newEvent.Availability = EKEventAvailability.Free;
        store.SaveEvent(newEvent, EKSpan.ThisEvent, new IntPtr());
    }
}

答案 1 :(得分:2)

横向思考方法是考虑创建一个ICS文件,然后创建一个电子邮件(可以通过编程方式完成),然后将其发送给用户或他们想要的任何人。这就是我在代码中解决这个问题的方法。它的美妙之处在于它还不会在用户中产生您的应用程序将管理日期的感觉,即,如果它们在您的应用程序中更改了您将取消的内容并且即时重新预订。

答案 2 :(得分:1)

这在官方iPhone API中是不可能的,所以我怀疑通过单声道触摸是可能的。

答案 3 :(得分:0)

SDK无法直接使用。您可以尝试让用户订阅从您的服务器发布的在线日历,然后将事件上传到该日历,但您可能会遇到各种同步问题。