在一个使用远程通知(来自Parse.com)的iOS应用程序中,我花了一些时间研究这个主题,得出的结论是我不应该在后台使用远程通知,或者可能使用静默通知。
但是silent notification看起来相当复杂。
例如:
在此代码中:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
NSLog(@"application:didReceiveRemoteNotification:fetchCompletionHandler:");
completionHandler(UIBackgroundFetchResultNewData);
}添加最后一行(completionHandler)可以防止出现错误消息。但是这到底是做什么的呢?这个completionHandler是从哪里来的?
我从来没有接触过静默通知,我有点迷失了。
发布于 2015-05-27 17:32:12
最后一行是补全块,当你的应用程序在后台时将被调用。
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo当你的应用程序在后台或前台模式下运行时,会调用上面的方法。
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler如果启用了远程通知后台模式,则当远程通知到达时,系统会启动应用程序(或将其从挂起状态唤醒),并将其置于后台状态。
当远程通知到达时,系统将通知显示给用户,并在后台启动应用程序(如果需要),以便它可以调用此方法。在后台启动应用程序可以让您有时间处理通知并下载与之相关的任何数据,从而最大限度地缩短通知到达和向用户显示数据之间所经过的时间。
如果你需要更多的澄清,请告诉我。
https://stackoverflow.com/questions/30478101
复制相似问题