从默认日历启动我的应用程序

时间:2014-04-08 07:24:44

标签: ios objective-c eventkit

我刚从代码中添加了iphone日历上的一个事件:

EKEventStore *store=[[EKEventStore alloc] init];
    [store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
        if (!granted) {
            return ;
        }
        EKEvent *event=[EKEvent eventWithEventStore:store];
        event.title=@"This is the event";
        event.startDate=[NSDate date];
        event.endDate =[event.startDate dateByAddingTimeInterval:60*60];
        event.allDay=YES;
        NSURL *url=[NSURL URLWithString:@"http://www.google.com"];
        event.URL=url;
        [event setCalendar:[store defaultCalendarForNewEvents]];
        NSError *errr=nil;
        [store saveEvent:event span:EKSpanThisEvent commit:YES error:&errr]; //        NSLog(@"%@",errr); //        NSLog(@"%@",event.eventIdentifier);

    }];

我的活动已添加到默认日历中: enter image description here

当您点击活动时,您将显示以下内容: enter image description here

现在我想从上面的一个屏幕启动我的应用程序。

1 个答案:

答案 0 :(得分:2)

要注册自己的URL方案,Apple提供了一个很好的文档: https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072-CH7-SW50

要执行此操作,请转到xcode-Project文件并选择构建目标。 前往“信息”。在底部有一个“URL类型”的下拉列表。 标识符可以与您的包标识符匹配。该方案本身非常重要,在这里你输入一个,你将在以后使用。例如:“myCustomScheme” enter image description here

现在将应用程序带到设备上并提供如下链接: myCustomScheme:// additionalURLWithcustomInformation / andParametersYouWantToUseLater = 1234

在AppDelegate中现在实现以下方法并处理事件:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    if ([[url scheme] isEqualToString:@"myCustomScheme"])
    {
        // Custom URL handling, for example for url parameters
    }
    return YES;
}