Как сохранить доступ к UILocalNotification, если сообщение о событии было изначально проигнорировано

#iphone #user-input #uialertview #uilocalnotification #unlock

#iPhone #пользовательский ввод #uialertview #uilocalnotification #разблокировать

Вопрос:

У меня есть UILocalNotification, который запускается по повторяющемуся расписанию. Цель, которую выполняет уведомление, — просто напомнить пользователю что-то сделать. При срабатывании уведомления пользователи могут войти в приложение, и появится другое оповещение с запросом, выполнили ли они задачу, и приложение соответствующим образом отслеживает.

Если пользователь использует свой телефон, срабатывает уведомление, приложение отлично переключается, а пользовательский ввод записывается. Если они используют приложение во время срабатывания уведомления, все работает отлично. Если пользователь не использует свой телефон, уведомление активирует телефон и имеет опцию «Перейти к просмотру», после чего запускается приложение, появляется отличное оповещение и ввод записывается.

Проблема заключается в том, что пользователь не использует свой телефон и НЕ переходит к просмотру в течение нескольких секунд, в течение которых оповещение будит телефон, когда пользователь позже запускает устройство, окно предупреждения все еще присутствует, давая пользователю знать, что что-то произошло, но опция «Слайд для просмотра» заменяется стандартной «Слайд для разблокировки», а когда телефон разблокирован, возможность входа в приложение пропадает, и пользовательский ввод может быть заблокирован. не подлежит записи.

Итак, я теряю доступ к возможности отвечать на уведомления в моем приложении. Можно ли что-нибудь сделать для решения этой проблемы? Спасибо!

Ответ №1:

Единственный способ сделать это — отслеживать уведомления вне системы уведомлений. К сожалению, система уведомлений не позволяет вам читать какие-либо данные о настроенных вами уведомлениях.

Всякий раз, когда вы устанавливаете уведомление, добавляйте его в список уведомлений с указанием даты, когда оно будет запущено. Когда пользователь входит в ваше приложение, просмотрите свой локальный список и посмотрите, срок действия какого уведомления истек (дата < СЕЙЧАС).