ios应用程序中的APNS

时间:2015-10-27 15:10:26

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

您能否告诉我在函数中接收远程通知时使用fetchCompletionHandler的最佳做法:


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

我看到人们通常在上述函数的末尾写下这段代码:

completionHandler(UIBackgroundFetchResultNewData);

如果我写的话怎么办?

completionHandler(UIBackgroundFetchResultNoData);

或者即使我没有提供上述代码会发生什么?

注意:我使用的是xcode7.1,objective-c,ios9.1

1 个答案:

答案 0 :(得分:1)

  
      
  • UIBackgroundFetchResult.NewData - 在获取新内容时调用,并且应用程序已更新。
  •   
  • UIBackgroundFetchResult.NoData - 在新内容的抓取过程中调用,但没有内容可用。
  •   
  • UIBackgroundFetchResult.Failed - 对于错误处理很有用,当fetch无法通过时会调用此方法。
  •   

你必须调用它来让iOS知道你的后台获取结果是什么。它使用此信息来安排将来的背景提取。

如果你忽视了这一点,操作系统可能会延迟未来的背景提取。

良好使用的一个例子是here

更新:不调用此处理程序的后果可能包括完全终止您的应用。