Parse warning from didReceiveRemoteNotification:fetchCompletionHandler
IosParse PlatformIos Problem Overview
I am getting an error after adding this code from parse.com:
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
if (application.applicationState == UIApplicationStateInactive) {
[PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
}
}
I don't really understand what is going on, but I am getting this warning in the log:
> You've implemented -[
I think adding in your plist file UIBackgroundModes - remote-notification
would fix the problem,
But when I do that, it changes the words to the follow:
Required Background Modes
-> App downloads content in response to push notifications
Which my app doesn't do, so I am confused as to why I am doing this in the first place.
Ios Solutions
Solution 1 - Ios
If you don't want to manually add key in your .plist
file then here's a graphical version of @MurraySagal's answer, follow the steps from 1 to 7 and you'll be done. :)
Note: If you can't read out the steps, you can zoom out your current tab by using combination of Command++ (for zoom in) and Command+- (for zoom out). If Command won't work, you can try with Ctrl.
Solution 2 - Ios
I think @djshiow is not solving your problem.
You need to add the following in your info.plist file:
-
Add a new row and, on the left column, select Required background modes.
-
On Item 0 row, click on the right column and type: remote-notification. Press Enter.
Solution 3 - Ios
If you don't intend to fetch data in response to a remote notification I think you can implement this delegate method:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
e.g.
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo {
if (application.applicationState == UIApplicationStateInactive) {
[PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
}
}
instead of the current one you're using.
Solution 4 - Ios
In Xcode 6:
- In the Project Navigator click the project
- In the Projects and Targets list click the target.
- Click Capabilities
- Expand and turn on Background Modes
- Click Remote Notifications
This will add the Required background modes
key and App downloads content in response to push notifications
value to info.plist
.
Solution 5 - Ios
When you use the new didReceive... method you are expected to do two things:
- Add the necessary entry in your plist
- Add a completion handler that will handle the event for handling the data
If you do not want to download any data, you can add this to your didReceive... method
completionHandler(.NoData)