2016-04-11 2 views
2

Я хочу, чтобы мое приложение iOS узнало, когда наступает конкретная дата и время без каких-либо сбоев. Теперь это время может быть в днях/неделях/месяцах, и мое приложение может быть в backgorund или в состоянии завершения.iOS - Как вызвать приложение в определенное время и дату

Возможны следующие варианты: a. Местное уведомление - но оно не уведомляет, когда мое приложение находится в фоновом режиме. b. Уведомление Silent Push - оно будет работать, но оно требует от нас создания сервера для него.

Есть ли другой вариант, с которым мы можем достичь того же?

+0

вы можете запланировать локальное уведомление в определенное время. Это будет уведомлять пользователя, даже когда приложение будет завершено или в фоновом режиме. – Afnan

+0

Нет абсолютно гарантированного способа добиться этого. Лучшее, что вы можете сделать, это тихий толчок с сервера в указанное время, но устройство может быть отключено или не иметь активного соединения. – Paulw11

+0

Почему вы говорите, что локальное уведомление не уведомляет, когда приложение находится в фоновом режиме? Он делает это, посмотрев ссылку на [UILocalNotification] (https://developer.apple.com/library/ios/documentation/iPhone/Reference/UILocalNotification_Class/index.html#//apple_ref/doc/c_ref/UILocalNotification). Пользователь получит сигнал системного предупреждения/значка/предупреждения (в зависимости от того, что он задает в настройках), когда приложение не находится на переднем плане. – dirkgroten

ответ

5

Там нет никакого способа, вы можете добиться этого, варианты: 1) При использовании локального уведомления как график уведомления о конкретном времени и хранить, что время и связанной с ними деятельности в userdefaults. всякий раз, когда состояние приложения изменяется в фоновом режиме на передний план в appdelegates - (void) applicationDidBecomeActive: (UIApplication *) приложение метод написал код для обработки желаемой функциональности.

2) Silent push-уведомление, которое работает только в том случае, если ваше приложение находится в фоновом режиме/сведено к минимуму. Как только ваше приложение будет убито (перетащите его из многозадачности), даже тихое push-уведомление не сможет разбудить ваше приложение.

3) Для того, чтобы преодолеть ограничения немого уведомления толчка, Apple представила Pushkit Уведомления в iOS8, для VoIP приложений, таких как WhatsApp, Skype и т.д., в которых толкать уведомления комплекта один раз получил, будит ваше приложение даже обрывается или не работает в фоновом режиме. Опять же, вы не можете использовать Pushkit, если вы на самом деле не используете voip.

+1

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

+0

вы правы @PatassiumPermanganate, но когда приложение убито (путем прокрутки в многозадачном режиме, как я уже упоминал), или его не работает/завершено, за исключением уведомлений push kit (уведомление не может разбудить ваше приложение). –

0

Нет. Похоже, вы должны использовать push-уведомления.

Это единственное, что будет работать, если ваше приложение будет прекращено.

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