2016-05-13 2 views
0

Я пытаюсь реализовать интерактивные локальные уведомления для моего приложения, и, в частности, с помощью реализации этого метода:IOS: Обработка интерактивных уведомлений, когда приложение не работает в фоновом режиме

- (void) application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forLocalNotification:(UILocalNotification *)notification withResponseInfo:(NSDictionary *)responseInfo completionHandler:(void (^)())completionHandler 

метод работает отлично, за исключением, если пользователь убивает приложение, а затем получает интерактивное локальное уведомление. В этом случае нет указаний на то, что было получено местное уведомление (нажатие кнопки).

Ищу помощь/консультации по 2 фронтам

(1) Является ли кто-нибудь может подтвердить/опровергнуть, что handleActionWithIdentifier не вызывается, когда приложение не работает вообще (то есть даже не в фоновом режиме). Я прошел через соответствующее руководство по программированию, и я заметил, что большая часть языка говорила о foreground и background режиме, не обращаясь к третьей возможности. Тем не менее, я ищу что-то более твердое, чем «это не работает для меня», чтобы успокоить это. Есть ли что-нибудь в документах, которые говорят, что они должны или не должны работать после того, как приложение будет убито?

(2) Как я могу войти в консоль Xcode после того, как я убил свое приложение? Каждый раз, когда я пытаюсь это сделать, я замечаю, что когда я перезапускаю приложение, у меня больше нет регистрации. Это важно, потому что мне нужно так или иначе доказать, получаю ли я интерактивные сообщения из пользовательских кликов после того, как пользователь убил приложение.

Буду признателен за любые советы по этому вопросу. Спасибо.

ответ

0

Если приложение завершено, то после его запуска через уведомление, thenFinishLaunchingWithOptions вызывается с ключом UIApplicationLaunchOptionsLocalNotificationKey. Значение этого ключа является NSDictionary, содержащим полезную нагрузку локального уведомления

Вы не можете войти в консоль Xcode из приложения, если приложение не работает, конечно. Но если вы запустите приложение, а не через Xcode, вы можете посмотреть его, перейдя в Window | Devices, затем выберите ваше подключенное устройство. Если вы перезапускаете приложение через Xcode, и регистрация там отсутствует, это, вероятно, ошибка в Xcode, я заметил, что в последних версиях Xcode возникают проблемы с отображением журнала. Если это произойдет, попробуйте выполнить вывод Devices.

+0

благодарит за полезную информацию. Я смущен, чтобы признать, что не могу понять, как видеть мои инструкции NSLog, запущенные на моем iPhone, а не через Xcode. Что вы подразумеваете под Window/Devices? Я этого не вижу. – helloB

+1

В меню «Окно окна Xcode» выберите «Устройства», после чего имя подключенного iPhone должно появиться с левой стороны (вместе с Mac и списком симуляторов). Когда вы нажимаете на устройство iPhone, Xcode отображает информацию об устройстве, а внизу отображается панель регистрации устройства. Если вы не видите его, посмотрите, есть ли раскрывающаяся вкладка в нижней части экрана (вкладка раскрытия - маленькая стрелка направленного вверх в крошечной коробке). – Gruntcakes

+0

Я пробовал то, что вы рекомендовали, но все, что я вижу на моем устройстве, - это журналы сбоев. Я пытаюсь увидеть инструкции типа NSLog ... – helloB

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