(沉默)RemoteNotification

时间:2015-05-27 09:17:16

标签: ios objective-c parse-platform apple-push-notifications

在使用远程通知(来自Parse.com)的iOS应用程序中,我花了一些时间研究这个主题,得出的结论是我不应该在后台使用远程通知或者可能使用静默通知。< / p>

silent notification似乎相当复杂。

例如:

在此代码中:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    NSLog(@"application:didReceiveRemoteNotification:fetchCompletionHandler:");
    completionHandler(UIBackgroundFetchResultNewData);
}

添加最后一行(completionHandler)的事实可以防止出现错误消息。 但这究竟是做什么的呢?这个完成汉德勒来自哪里?

我从未接触过无声通知,我有点迷失。

1 个答案:

答案 0 :(得分:1)

最后一行是完成在应用程序处于后台时将调用的块。

- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo

当您的应用程序在后台或前台模式下运行时,会调用上面的方法。

- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler

如果您启用了远程通知后台模式,系统会启动您的应用(或将其从暂停状态唤醒),并在远程通知到达时将其置于后台状态。

当远程通知到达时,系统会向用户显示通知并在后台启动应用程序(如果需要),以便可以调用此方法。在后台启动您的应用程序,您可以有时间处理通知并下载与其相关的任何数据,从而最大限度地缩短通知到达和向用户显示数据之间经过的时间。

如果您需要进一步澄清,请告诉我。