2016-09-21 2 views
0

В моем приложении пользователь может присоединиться к удаленным событиям. Когда пользователь присоединяется к событию, я создаю событие в своем родном календаре iOS. Я знаю, что я могу редактировать и удалять это событие из моего приложения, когда приложение работает.Редактировать событие календаря, когда приложение находится в фоновом режиме или режиме kill

Теперь у меня есть требование отредактировать или удалить вышеупомянутое событие события на основе push-уведомления. Это означает, что когда происходит какое-либо изменение с удаленным событием, мое приложение получает push-уведомление. Итак, я хочу знать, могу ли я редактировать или удалять собственное событие календаря, когда когда-либо получено push-уведомление (может быть приложение работает в фоновом режиме или убито).

+0

Вы пробовали с комплектом push? – Hasya

+0

@ Hasya Я прочитал о наборе push, но его вне моего объема проекта – sajaz

ответ

0

Используя APN (в отличие от ПК), вам необходимо включить фоновое уведомление в разрешениях вашего приложения. Отправлять уведомления с помощью content-available : 1 в словаре aps полезной нагрузки. Внедрите новый (er) метод делегирования для обработки фоновой обработки уведомлений в делегате приложения. Молитесь о том, что iOS предпочитает часто запускать приложение в фоновом режиме, чтобы функция не чувствовала себя плохой.

Нет уверенного огня, чтобы получить время обработки, когда ваше приложение находится в фоновом режиме или не работает. Уведомления могут помочь, но Apple явно заявляет, что гарантий нет. Один из известных сценариев, когда iOS не запускает приложение для обработки уведомления, - это когда приложение было недавно убито пользователем (переключение в коммутатор задач).

Сообщения Push Kit гарантированно пробудят или запустит приложение в фоновом режиме, но приложение должно быть приложением VoIP для их использования.

Кроме того, если вы идете по этому маршруту, имейте в виду, что ваше приложение будет вести себя по-другому при запуске непосредственно в фоновом режиме. Вы не можете предположить, что запуск всегда будет заканчиваться приложением в состоянии Active.

+0

Я уже включил удаленные уведомления в фоновом режиме. Но в соответствии с вашим ответом я понимаю, что приложение должно пробудиться, чтобы выполнить фоновый процесс и который не гарантируется. Кроме того, это означает, что я не могу этого сделать, когда приложение будет убито. Кроме того, как насчет приложения работает в фоновом режиме, но телефон заблокирован. – sajaz

+0

Если приложение было убито, его можно запустить _may_ для обработки уведомления. Или это не так. Я не знаю, доступен ли API событий, когда устройство заблокировано. Я знаком с соответствующими понятиями, но не с деталями. – Avi

0

Да, вы можете редактировать и удалять. Когда вы получаете тихое push-уведомление, ваше приложение запускается в фоновом режиме. Даже мы можем работать с базой данных SQLite.

Таким образом, как только вы получите сообщение с тихим push, вы планируете локальное уведомление и уведомляете пользователя. ваше приложение будет вызывать ваши местные звуковые звуки уведомлений (максимум 30 секунд).

Вы также можете выполнять дальнейшие действия пользовательского интерфейса и логики, когда пользователь нажимает на локальное уведомление или кнопки локального уведомления.

Если вы сохраняете свой локальный объект уведомления в NSUserDefault, то, если ваше устройство снова перезагрузится, вы можете иметь локальный объект уведомления от NSUserDefault в didFinishLaunchingWithOptions и выполнять дальнейшие действия.

Смежные вопросы