Отключение обработчика push-уведомлений, когда приложение является передним и задним - PullRequest
3 голосов
/ 06 ноября 2010

Говорят, что (поправьте меня, если я ошибаюсь), если приложение находится на переднем плане, мы должны обрабатывать push-уведомления в "didReceiveRemoteNotification" и если приложение находится в фоновом режиме, используя "didFinishLaunchingWithOptions", когда пользователь нажимает наКнопка «Просмотр» приложения.Поскольку у меня нет телефона для тестирования, я хочу знать, правильно ли я это делаю.

1) Что будет вызвано, когда я нажму на кнопку «Просмотр» в push-уведомлении?

2) Допустим, я запускаю приложение на переднем плане и одновременно получаю push-уведомления.Буду ли я получать уведомления push-уведомлений?Если так, что произойдет, если пользователь нажмет кнопку «Просмотр»?

3) В этой теме Как обрабатывать push-уведомления, если приложение уже запущено? В нем говорится:

ключ "alert" не будет находиться непосредственно под словарем userInfo, вам нужно получить другой словарь с именем "aps", а затем получить "alert" или "body" из словаря "aps" "

Это правда?

4) Мне нужно перейти к определенному представлению, когда пользователь нажимает кнопку View. Следовательно, мне нужно обрабатывать этот код в обоих методах?

Спасибо

1 Ответ

2 голосов
/ 11 июня 2011

В этом яблочном видео Apple есть краткое описание методов, вызываемых push-уведомлениями: http://developer.apple.com/videos/iphone/#video-advanced-pushnotification - убедитесь, что вы зашли, загрузите полную версию в iTunes.

Эта прямая ссылка может работать: http://developer.apple.com/itunes/?destination=adc.apple.com.3391495696.03391495702.3416205190?i=1378617410

  1. В любом случае, общая идея заключается в том, что если ваше приложение не находится на переднем плане, нажатие кнопки просмотра вызовет didFinishLaunchingWithOptions, а если это приложение переднего плана, вы получите didReceiveRemoteNotification.

  2. Не думаю, что вы получите предупреждение. Будет вызван метод didReceiveRemoteNotification, и вы сможете показать UIAlert, если хотите.

  3. Да - это правда.

  4. Да, но я думаю, что вы можете упростить это, создав третий метод, специально разработанный для обработки вашего представления. Вы можете вызвать это как из didFinishLaunching ( только в том случае, если запускается через уведомление), так и didReceiveRemoteNotification. Таким образом, если ваше приложение должно быть запущено, у вас может быть время для выполнения любых других настроек, которые вам могут понадобиться для того, чтобы приложение работало с самого начала (загрузка сохраненных данных, контроллеры панели вкладок init или что-либо еще в этом роде). ).

Удачи

...