#iphone #user-input #uialertview #uilocalnotification #unlock
#iPhone #пользовательский ввод #uialertview #uilocalnotification #разблокировать
Вопрос:
У меня есть UILocalNotification, который запускается по повторяющемуся расписанию. Цель, которую выполняет уведомление, — просто напомнить пользователю что-то сделать. При срабатывании уведомления пользователи могут войти в приложение, и появится другое оповещение с запросом, выполнили ли они задачу, и приложение соответствующим образом отслеживает.
Если пользователь использует свой телефон, срабатывает уведомление, приложение отлично переключается, а пользовательский ввод записывается. Если они используют приложение во время срабатывания уведомления, все работает отлично. Если пользователь не использует свой телефон, уведомление активирует телефон и имеет опцию «Перейти к просмотру», после чего запускается приложение, появляется отличное оповещение и ввод записывается.
Проблема заключается в том, что пользователь не использует свой телефон и НЕ переходит к просмотру в течение нескольких секунд, в течение которых оповещение будит телефон, когда пользователь позже запускает устройство, окно предупреждения все еще присутствует, давая пользователю знать, что что-то произошло, но опция «Слайд для просмотра» заменяется стандартной «Слайд для разблокировки», а когда телефон разблокирован, возможность входа в приложение пропадает, и пользовательский ввод может быть заблокирован. не подлежит записи.
Итак, я теряю доступ к возможности отвечать на уведомления в моем приложении. Можно ли что-нибудь сделать для решения этой проблемы? Спасибо!
Ответ №1:
Единственный способ сделать это — отслеживать уведомления вне системы уведомлений. К сожалению, система уведомлений не позволяет вам читать какие-либо данные о настроенных вами уведомлениях.
Всякий раз, когда вы устанавливаете уведомление, добавляйте его в список уведомлений с указанием даты, когда оно будет запущено. Когда пользователь входит в ваше приложение, просмотрите свой локальный список и посмотрите, срок действия какого уведомления истек (дата < СЕЙЧАС).