Предупреждение анализа от DidReceiveRemoteNotification:fetchCompletionHandler

StackOverflow https://stackoverflow.com//questions/20009006

  •  20-12-2019
  •  | 
  •  

Вопрос

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

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

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

Вы реализовали -[Приложение: DidReceiveremotenotification: FetchCompletionHandler:], но вам все еще нужно добавить «удаленное нотирование» в список ваших поддерживаемых Uibackgroundmodes в своем info.plist.

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

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

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

Чего не делает мое приложение, поэтому я не понимаю, зачем вообще это делаю.

Это было полезно?

Решение

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

- (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 не решает вашу проблему.

Вам необходимо добавить следующее в файл info.plist:

remote-notification

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

2) В строке «Элемент 0» щелкните правый столбец и введите: удаленное уведомление.Нажмите Ввод.

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

В Xcode 6:

  • В Навигаторе проектов щелкните проект.
  • В списке «Проекты и цели» щелкните цель.
  • Нажмите Возможности
  • Разверните и включите фоновые режимы
  • Нажмите «Удаленные уведомления».

Это добавит Required background modes ключ и App downloads content in response to push notifications значение для info.plist.

Когда вы используете новый метод DidReceive...методе вы должны сделать две вещи:

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

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

completionHandler(.NoData)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top