Схема 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
сопоставляется с