2015-06-26 3 views
0

Я новичок в iOS, и я работаю над push-уведомлением. Я сделал это с помощью parse.com, и он работает нормально.Как обрабатывать push-уведомление, когда мое приложение становится активным?

Моя проблема:

У меня есть два UIViewController. Вначале ViewController веб-служба вызывается в методе viewDidLoad и извлекает данные о студентах с сервера и отображает их в виде таблицы.

Затем я выбираю любого ученика в виде таблицы, поэтому он будет перемещаться по второму detailviewcontroller, где будут показаны данные ученика.

Теперь я нажал кнопку «домой», и мое приложение переходит в фоновый режим, и появляется уведомление о нажатии.

Теперь я нажимаю значок приложения вместо уведомления, чтобы показывать обновления.

Может ли кто-нибудь помочь мне, как я могу справиться с этим сценарием, потому что когда пользователь нажимает значок приложения, он будет непосредственно перемещаться по подробному представлению учащихся. Как я могу обработать это push-уведомление и обновить табличное представление ученика?

+0

FYI: кажется, что вы имеете дело с чувствительной (студентом) информацией, в Недавно США не поощряли/запрещали использовать приложения, которые используют облако (которое использует parse.com) из-за FERPA/HIPAA, вам нужно использовать выделенный сервер. –

+0

@BorisGafurov благодарим за предоставленную информацию. –

ответ

0

нормально, может быть попробовать это, когда откроется приложение:

-(void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    int i=[UIApplication sharedApplication].applicationIconBadgeNumber; 
    //if i!=0 you got some notifications - fetch data from server and refresh array with data 
} 
+0

Благодарим вас за повторное воспроизведение, но мой вопрос - что-то differnet .. Я не хочу идти на первый экран, когда приложение становится активным, но вы хотите обновить массив или данные таблицы учеников? –

+0

Предполагая, что ваше приложение попадает под брандмауэр, когда нажимает приход - см. Мой отредактированный ответ –

0

content-available флаг, что вам нужно. Добавьте его в свою полезную нагрузку, обработайте application:didReceiveRemoteNotification:fetchCompletionHandler:, и вы сможете поймать все push-уведомления. Взгляните на my answer на тот же вопрос для получения более подробной информации.

P.S. Нет никакого способа, если ваше приложение будет принудительно закрыто. Если ваше приложение запущено - вы можете обрабатывать все уведомления

+1

Комментарии удалены, поскольку они определенно ** не ** конструктивны. – ChrisF

+1

Также, если вы считаете, что нашли дубликат, пожалуйста, отметьте это как таковой, а не отправляйте ответ, который по существу является ссылкой на другой вопрос. – ChrisF

0

Хотя мне нравится обходной путь со считывающим номером значка, я попытался бы быть явным в проблеме, если вы не можете реализовать синхронизацию вызова API, которая приведет к изменениям дельты после последнего запроса вы можете использовать push-уведомления для решения проблемы.

  1. Когда ваше приложение просто в фоновом режиме, ваш AppDelegate будет вызван с - application:didReceiveRemoteNotification:
  2. Если приложение не работает вы можете отправлять уведомление толчка запуска приложения к процессу, делегат вы получаете - application:didReceiveRemoteNotification:fetchCompletionHandler:

В обоих случаях вам нужно будет настроить полезную нагрузку JSON, чтобы запустить приложение в фоновом режиме, если оно еще не запущено.

В обоих случаях вы хотите сохранить «необработанные» уведомления. Если вы хотите сохранить только идентификаторы или любую другую небольшую часть информации, я бы, вероятно, посмотрел на NSUserDefaults.

Если данные являются существенными или вы хотите получить объекты из сети, то более подходящим подходом является база данных или CoreData (или даже локальное решение для хранения Parse.com).

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

Надеется, что это помогает

Update @ Sega-Zero упоминает имя поля для JSON вы должны включить в полезной нагрузке

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