Схема URL для открытия собственного календаря с определенным идентификатором события

Сначала я знал, что для этого подхода нет открытых API.


Нажатие на событие из виджета родного календаря iOS8 запускает календарь с определенным событием. Итак, я могу догадаться, что для этого должна быть схема URL. Потому что виджет и календарь работает на каждом песочнице, поэтому NSURL должен быть использован.


Я нашел некоторые подсказки от iPhoneDevWiki.net. Это говорит о том, что calshow:x?eventid=id это схема URL, которая открывает определенное событие, и она используется SpringBoard,

Так как значение id Параметр не описан ясно, поэтому я проверил эту схему URL с:

  • EKEvent.calendarItemIdentifier
  • EKEvent.externalCalendarItemIdentifier
  • EKEvent.eventIdentifier

Никто из них не работал.

Вики может быть устаревшей.

Есть ли кто-нибудь, кто мог бы открыть или раскрыть конкретное событие с помощью родного календаря?


И я нашел другую подсказку от подобных вопросов в переполнении стека.

calshow: схема.

Кажется, используется для открытого календаря с конкретной датой. Может использоваться как calshow:[time interval since reference date]Дата начала, кажется, 01.01.2001

Его можно использовать для выявления события, а не для его открытия. Однако, когда календарь не работает в фоновом режиме, этот подход также не работает.


И я также обнаружил, что x-apple-calevent схема может также запускать календарь, но я не знаю деталей (путь и параметры) вообще.


Любые подсказки и мнения будут приветствоваться.

Лучшие регары.

1 ответ

Я смог использоватьcalshow:x?eventid=idсхема по

  • укажите временную метку (в секундах) с исходной даты (январь 2001 г.) дляx
  • укажите числовое значение для

Я смог открыть сведения о событии на симуляторе, используя эти аргументы.calshow:685409700?eventid=99.

Как видите, информация о дате взята изtimestampи в этом случае неправильно показывает, что День Благодарения приходится на 21 сентября.

Ниже нравится1,2, по крайней мере до20открыть контактную информацию, например, используяcalshow:685409700?eventid=1поднимает это


Использование нечисловых идентификаторов или чисел выше 200, похоже, не работает, и они просто открывают представление «День» для определенной временной метки.

Параметр, похоже, использует некоторую числовую индексацию, а не фактические идентификаторы событий/элементов календаря.

Мне случайно удалось заставить схему URL-адреса соответствовать чему-то, потому что я пытался использовать, начиная с , поэтому я думаю, что он был проанализирован до числа16

Я также смог сопоставить некоторые события, созданные в моем приложении, с помощью100и150

Кроме этого я понятия не имею о том, чтоidвeventidсопоставляется с

Другие вопросы по тегам