如何为本地通知创建后台服务?

时间:2015-08-17 12:10:15

标签: ios objective-c json notifications

我正在尝试根据JSON新数据为我的iOS应用程序创建本地通知。

我已经创建了Web服务并解析了一些数据,并在第一次作为字符串存储到plist中。 我想每隔n分钟解析一次JSON,并与plist存储的数据进行比较,看看是否有新到达的数据。 如果有什么新来的我想要显示通知。

这些过程想要在没有任何挂起的情况下执行活动和后台应用程序。

谢谢,

3 个答案:

答案 0 :(得分:2)

iOS不支持这种后台服务。原因是它们耗尽电池并因此给用户带来不好的体验。您可能希望在服务器端实现它。

Apple仅允许后续运行适用于以下类别的应用:VOIP,音频流,位置和附件(蓝牙)。

答案 1 :(得分:1)

如果要在后台更新服务器中的数据,基本上有2个选项:

  • 使用背景提取。系统会以特定的时间间隔(并非完全由您控制)将您的应用启动到后台,并让它有机会下载(请查看this post以获得良好的介绍)。
  • 使用(静音)推送通知。这当然需要在后端进行工作。

你应该使用哪一个取决于

之类的东西
  • 您是否可以控制后端(如果没有,则无法发送推送通知)
  • 数据更新的频率。如果它经常更新,则后台提取可能没问题。如果它很少或不定期地更新,那么推动可能会更好。

答案 2 :(得分:0)

如果推送通知符合您的目的,您可以使用无声推送通知。它不会进入通知托盘。

1.一旦收到通知,就会调用下面的方法,而不是这个方法

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
  completionHandler(UIBackgroundFetchResult.NewData)
    NSLog("Download From Remote Notification%@",userInfo)
}

enter image description here

2.启用远程通知

静默推送通知中无需用户互动

以下是解释分步指南的好文章

http://www.g8production.com/post/72656082173/ios7-multitasking-silent-notifications