2013-10-17 46 views
2

我正在尝试编写一个iOS应用程序,通过API通过用户通过JSON信息访问产品的价格变化。我想要有一个后台任务,每隔n分钟就会重复检查一次服务器是否有新的JSON,并在满足特定条件时向用户发送通知。什么是正确的方法来做到这一点?不断轮询服务器从iOS应用程序新的JSON?

+0

也许不是后台任务。你有没有看过iOS 7中的背景获取?但它不会每隔n分钟读取一次。 –

+0

您可以从服务器发送推送通知。在这种情况下,服务器将是访问API的服务器,而不是您的应用。或者,您可以让应用程序在前台查看API。你的意思是? –

回答

0

这不起作用。这可能是更好的解决方案:

  1. 设置一个轮询JSON数据源的服务器。
  2. 当数据源发生变化时,使用Apple Push Service来通知用户。
  3. 收到通知后,开始后台提取会话。
2

正如以前的海报提到的,这是更好的服务器端完成,而不是通过轮询。但是,使用Apple Push Service来通知客户端设备不是理想的解决方案。问题是交付不能保证(每个苹果),你无法确认交付。用户可以拒绝推送通知,如果发送太多,Apple可能拒绝发送通知等。使用PubNubPusher等服务可以更好地使用这种服务,该服务以可靠的方式将通知推送到客户端,并且都具有iOS蜜蜂。它们非常便宜。如果你想重新发明轮子并节省资金,你可以查看它们的工作方式并编写自己的版本。

你当然可以做客户端轮询,在这种情况下,异步NSOperation特别适合(它将在后台线程上运行,并且当事情发生变化时可以将通知发送到NSNotificationCenter)。你可以找到更多关于如何实现该here

相关问题