ios - (无声)RemoteNotification

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

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

但是无声通知看起来相当复杂。

例如:

在此代码中:

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

添加最后一行 (completionHandler) 可以防止出现错误消息。 但这到底是做什么的?这个completionHandler从哪里来?

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

最佳答案

最后一行是完成 block ,当您的应用程序处于后台时将调用该 block 。

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

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

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

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

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

如果您需要更多说明,请告诉我。

关于ios - (无声)RemoteNotification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30478101/

相关文章:

ios - Swift:从解析中检索数据编号并计算平均值

javascript - 无法链接在云代码中返回 Promise 的自定义函数

ios - 防止 initWithContentsOfURL : from using cache

ios:在 iphone6 上运行时增加 UIViewController 中自定义 View 的宽度

ios - 从 JSON 创建数据对象时出错

ios - 调用 [self.collectionView reloadData] 时 collectionView nil,不调用 reloadData

ios - 重启应用后 PFUser currentUser 返回 nil

ios - 无法将类型 '()' (0x2c2fb50) 的值转换为 'Swift.AnyObject

ios - 访问 UITableViewController 单元格集合

ios - 使用 objective c 和 google-api-objectivec-client-for-rest 在 youtube 上上传视频