在具有特定事件 ID 的日历应用中打开“事件详细信息”

Posted

技术标签:

【中文标题】在具有特定事件 ID 的日历应用中打开“事件详细信息”【英文标题】:Open "Event Details" in calendar app with specific event id 【发布时间】:2016-10-04 06:58:34 【问题描述】:

我正在尝试打开带有特定事件的日历,我以编程方式添加了事件,并且这些事件的所有 ID 都是持久的。

这就是我添加事件的方式

-(IBAction)addEvent:(id)sender
    EKEventStore *store = [[EKEventStore alloc]init];
    [store requestAccessToEntityType:EKEntityTypeReminder completion:^(BOOL granted, NSError *error) 
        if (!granted)  return; 
        EKEvent *event = [EKEvent eventWithEventStore:store];
        event.title = @"Demo Title";
        NSDateComponents *comps=[[NSDateComponents alloc]init];
        [comps setDay:4];
        [comps setMonth:10];
        [comps setYear:2016];
        [comps setHour:12];
        [comps setMinute:1];

        NSDate *date=[[[NSCalendar alloc]initWithCalendarIdentifier:NSCalendarIdentifierGregorian] dateFromComponents:comps];
        _date=date;
        event.startDate = date;
        event.endDate=date;
        event.notes=@"This is event description";

        EKAlarm *alarm=[EKAlarm alarmWithAbsoluteDate:date];
        [event addAlarm:alarm];
        event.calendar = [store defaultCalendarForNewEvents];

        NSError *err=nil;
        [store saveEvent:event span:EKSpanThisEvent commit:YES error:&err];
    ];

事件添加成功,我也可以打开日历应用程序,但问题是我无法在日历中的事件详细信息中导航

这是我打开日历的方法

-(IBAction)openCalender:(id)sender
    NSInteger interval = [_date timeIntervalSinceReferenceDate];
    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"calshow:%ld?eventid=%@", (long)interval,_eventID]];
    NSLog(@"%@",url);
    [[UIApplication sharedApplication] openURL:url];

我想要的是下面的截图

我得到的是

有什么想法吗?

【问题讨论】:

运气好可以让它工作吗? 不,@AhmedW 我没有 【参考方案1】:

要回答我自己的问题,任何公共 API 都无法做到这一点

我搜索了一年多,但任何公共 API 都无法做到这一点,但我想可能有一些私有 API 可以做到这一点(并且可能这样做会让我们的应用程序被拒绝)。

日历应用程序的小部件正在做我想做的事情,但 Apple 的 API 不允许我们使用它。哈哈

【讨论】:

【参考方案2】:

我真的不认为有办法做到这一点。即使从默认邮件应用程序创建新日历事件也会打开日历日视图。如果这个功能是可能的,我相信他们至少会在默认邮件应用程序中实现它。

【讨论】:

以上是关于在具有特定事件 ID 的日历应用中打开“事件详细信息”的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ios 日历中的 EKEvent 中设置特定警报?

jquery打开日历到特定月份

Swift FSCalendar 在表格视图的日历显示事件中选择日期

无法在 eventReceived 事件中为 Angular 中的事件设置 ID

重复事件、SQL 查询

如何获取特定登录用户的谷歌日历 URL