问题 如何用事件打开日历 - NSURL calshow:


我想知道是否有人知道如何使用APP的特定事件启动日历

我已经完成了一些研究,并且我已经提出了两种使用NSURL从应用程序内部打开本机日历的方法

  1. "calshow://" 在当前日期打开日历
  2. "calshow:\(someNSDate.timeIntervalSinceReferenceDate)" 打开日期为的日历 someNSDate

我也找到了 这个网站 列出 calshow:x?eventid=id 作为网址,但我不确定这是否有效(列为非公开),我无法让自己工作,尝试使用:

event.calendarItemExternalIdentifier
event.eventIdentifier
event.calendarItemIdentifier

目前我正在使用此代码在finalInterval日期,事件日期打开日历应用程序

        if let day = hackathon?.start {

            let today = NSDate()
            let timeSince = NSDate.timeIntervalSinceReferenceDate() // this plus
            let todayToFutureDate = day.timeIntervalSinceDate(today)
            let finalInterval = todayToFutureDate + timeSince

            UIApplication.sharedApplication().openURL(NSURL(string: "calshow:\(finalInterval)")!)
        }

我想要做的是打开日历,其中包含事件ID或类似事件的日历

如果您对更多信息有任何疑问,请问,我会在附近


10707
2017-08-08 18:29


起源



答案:


试试这个,创建这个功能

func gotoAppleCalendar(date: NSDate) {
  let interval = date.timeIntervalSinceReferenceDate
  let url = NSURL(string: "calshow:\(interval)")!
  UIApplication.sharedApplication().openURL(url)
}

使用事件开始日期作为参数调用该函数

 gotoAppleCalendar(event.startDate)

这打开了显示添加事件的苹果日历


9
2018-04-20 17:23



“增加的事件”?您没有使用此代码向日历添加活动... - duhseekoh
@duhseekoh此函数不用于向日历添加事件,用于以前添加的打开和事件 - El Grones


答案:


试试这个,创建这个功能

func gotoAppleCalendar(date: NSDate) {
  let interval = date.timeIntervalSinceReferenceDate
  let url = NSURL(string: "calshow:\(interval)")!
  UIApplication.sharedApplication().openURL(url)
}

使用事件开始日期作为参数调用该函数

 gotoAppleCalendar(event.startDate)

这打开了显示添加事件的苹果日历


9
2018-04-20 17:23



“增加的事件”?您没有使用此代码向日历添加活动... - duhseekoh
@duhseekoh此函数不用于向日历添加事件,用于以前添加的打开和事件 - El Grones


Swift 4变种+

func gotoAppleCalendar(date: Date) {
     let interval = date.timeIntervalSinceReferenceDate
     let url = URL(string: "calshow:\(interval)")!
     UIApplication.shared.openURL(url)
 }

1
2018-06-05 07:50





当然这就是我要澄清的......你说你会看到一个“添加的事件”......好像你用你编写的代码添加了事件,但是你没有这样做。

当您正在搜索如何在Google上添加日历事件时,这会让人感到困惑,并且您会得到一个“添加事件”的答案


0
2017-12-04 06:05