parsing来自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:],但是你仍然需要在你的Info.plist中的支持的UIBackgroundModes列表中添加“remote-notification”。
我认为join你的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
文件中手动添encryption钥,那么这里是@ MurraySagal的答案的graphics版本,按照从1到7的步骤,你就完成了。 🙂
注意:如果您无法读出步骤,可以使用Command + + (用于放大)和Command +(缩小)组合缩小当前选项卡。 如果命令不起作用,您可以尝试使用Ctrl 。
我认为@djshiow没有解决你的问题。
您需要在您的info.plist文件中添加以下内容:
1)添加一个新行,并在左侧列select所需的背景模式 。
2)在项目0行上,单击右侧栏并键入: remote-notification 。 按Enter键。
来源: http : //hayageek.com/ios-silent-push-notifications/
在Xcode 6中:
- 在Project Navigator中点击该项目
- 在“项目和目标”列表中,单击目标。
- 点击function
- 展开并打开背景模式
- 点击远程通知
这将添加Required background modes
键和App downloads content in response to push notifications
送到info.plist
。
当你使用新的didReceive …方法时,你需要做两件事:
- 在你的plist中添加必要的条目
- 添加一个处理数据处理事件的完成处理程序
如果你不想下载任何数据,你可以把它添加到你的didReceive …方法
completionHandler(.NoData)