Предупреждение о синтаксисе из didReceiveRemoteNotification: fetchCompletionHandler
Я получаю сообщение об ошибке после добавления этого кода с сайта parse.com:
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
if (application.applicationState == UIApplicationStateInactive) {
[PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
}
}
Я не понимаю, что происходит, но я получаю это предупреждение в журнале:
Вы реализовали - [ application: didReceiveRemoteNotification: fetchCompletionHandler:], но вам все равно нужно добавить "удаленное уведомление" в список ваших поддерживаемых UIBackgroundModes в вашем Info.plist.
Я думаю, что добавление в ваш файл plist UIBackgroundModes - remote-notification
устранит проблему,
Но когда я это делаю, он меняет слова на следующие:
Required Background Modes
→ App downloads content in response to push notifications
Что мое приложение не делает, поэтому я смущен тем, почему я делаю это в первую очередь.
Ответы
Ответ 1
Если вы не собираетесь извлекать данные в ответ на удаленное уведомление, я думаю, что вы можете реализовать этот метод делегата:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
например.
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo {
if (application.applicationState == UIApplicationStateInactive) {
[PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
}
}
вместо текущего, который вы используете.
Ответ 2
Если вы не хотите вручную добавлять ключ в свой .plist
файл, то вот графическая версия ответа @MurraySagal, выполните шаги от 1 до 7, и вы сделаете это.:)
![enter image description here]()
Примечание. Если вы не можете прочитать эти шаги, вы можете уменьшить свою текущую вкладку, используя комбинацию Command + + (для увеличения) и Command + - (для уменьшения масштаба). Если Command не будет работать, вы можете попробовать с помощью Ctrl.
Ответ 3
Я думаю, что @djshiow не решает вашу проблему.
Вам нужно добавить в файл info.plist следующее:
![remote-notification]()
1) Добавьте новую строку и в левом столбце выберите Необходимые фоновые режимы.
2) В строке "Позиция 0" щелкните правой колонке и введите: удаленное уведомление. Нажмите Enter.
Источник: http://hayageek.com/ios-silent-push-notifications/
Ответ 4
В Xcode 6:
- В Навигаторе проектов щелкните проект
- В списке "Проекты и цели" щелкните цель.
- Возможности Click
- Развернуть и включить Фоновые режимы
- Нажмите "Удаленные уведомления"
Это добавит ключ Required background modes
и App downloads content in response to push notifications
к info.plist
.
Ответ 5
Когда вы используете новый метод didReceive..., вы должны сделать две вещи:
- Добавьте необходимую запись в свой plist
- Добавить обработчик завершения, который будет обрабатывать событие для обработки данных
Если вы не хотите загружать какие-либо данные, вы можете добавить это в свой метод didReceive...
completionHandler(.NoData)