Разбор предупреждение от didReceiveRemoteNotification:fetchCompletionHandler



Я получаю сообщение об ошибке после добавления этого кода из parse.com:



- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
if (application.applicationState == UIApplicationStateInactive) {
[PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
}
}


Я не очень понимаю, что происходит, но я получаю это предупреждение в журнале:




вы реализовали -[
применение: didReceiveRemoteNotification: fetchCompletionHandler:], но
вам все равно нужно добавить "remote-notification" в список ваших
поддерживаемые UIBackgroundModes в вашей информации.файл plist.




Я думаю, что добавление в ваш plist файл UIBackgroundModes - remote-notification исправил бы проблему,



но когда я это делаю, он меняет слова на следующие:



Required Background Modes ->App downloads content in response to push notifications



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

510   5  
ios

5 ответов:

Если вы не намерены получать данные в ответ на удаленное уведомление я думаю, что вы можете реализовать этот метод делегата:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 

например

- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo {
    if (application.applicationState == UIApplicationStateInactive) {
        [PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
    }
}

вместо текущего вы используете.

Если вы не хотите вручную добавлять ключ в свой .plist файл тогда вот графическая версия ответа @MurraySagal, выполните шаги от 1 до 7, и вы будете сделаны. :)

enter image description here

Примечание: Если вы не можете прочитать шаги, вы можете уменьшить текущую вкладку с помощью комбинации команда++ (для увеличения) и команда+ - (для уменьшения масштаба). Если команда не работает, вы можете попробовать с Ctrl.

Я думаю, что @djshiow не решает вашу проблему.

вам нужно добавить следующее в свою информацию.plist file:

remote-notification

1) Добавить новую строку и в левом столбце выберите требуются фоновые режимы.

2) в строке пункта 0 Нажмите на правый столбец и введите: remote-notification. нажать кнопку ввод.

Источник:http://hayageek.com/ios-silent-push-notifications/

В Xcode 6:

  • в навигаторе проекта выберите проект
  • в списке проекты и цели выберите цель.
  • Выберите Функции
  • разверните и включите фоновые режимы
  • Нажмите Кнопку Удаленные Уведомления

Это добавить

при использовании нового didReceive... метод вы должны сделать две вещи:

  1. добавьте необходимую запись в свой plist
  2. добавить обработчик завершения, который будет обрабатывать событие для обработки данных

Если вы не хотите загружать какие-либо данные, вы можете добавить это в свой didReceive... метод

completionHandler(.NoData)

Comments

    Ничего не найдено.