Предупреждение анализа от DidReceiveRemoteNotification:fetchCompletionHandler
-
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, и все будет готово.:)
Примечание:Если вы не можете прочитать шаги, вы можете уменьшить масштаб текущей вкладки, используя комбинацию клавиш Команда++ (для увеличения) и Команда+- (для уменьшения масштаба).Если Команда не получится, можно попробовать Ctrl.
Я думаю, что @djshiow не решает вашу проблему.
Вам необходимо добавить следующее в файл info.plist:
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...методе вы должны сделать две вещи:
- Добавьте необходимую запись в свой список
- Добавьте обработчик завершения, который будет обрабатывать событие обработки данных.
Если вы не хотите загружать какие-либо данные, вы можете добавить это в свой файл DidReceive...метод
completionHandler(.NoData)