Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 不断从iOS应用程序轮询服务器以获取新的JSON?_Iphone_Ios_Objective C_Json_Api - Fatal编程技术网

Iphone 不断从iOS应用程序轮询服务器以获取新的JSON?

Iphone 不断从iOS应用程序轮询服务器以获取新的JSON?,iphone,ios,objective-c,json,api,Iphone,Ios,Objective C,Json,Api,我正在尝试编写一个iOS应用程序,它将通过API以JSON信息的形式通知用户我访问的产品的价格变化。我希望有一个后台任务,每n分钟重复检查服务器上是否有新的JSON,并在满足某些条件时向用户发送通知。这样做的正确方法是什么?这样做效果不好。下面是一个可能更好的解决方案: 设置轮询JSON数据源的服务器 当数据源更改时,使用Apple Push服务通知用户 收到通知后,启动后台提取会话 正如前面的海报所提到的,这最好在服务器端完成,而不是通过轮询。然而,使用Apple Push服务通知客户端设备并

我正在尝试编写一个iOS应用程序,它将通过API以JSON信息的形式通知用户我访问的产品的价格变化。我希望有一个后台任务,每n分钟重复检查服务器上是否有新的JSON,并在满足某些条件时向用户发送通知。这样做的正确方法是什么?

这样做效果不好。下面是一个可能更好的解决方案:

  • 设置轮询JSON数据源的服务器
  • 当数据源更改时,使用Apple Push服务通知用户
  • 收到通知后,启动后台提取会话

  • 正如前面的海报所提到的,这最好在服务器端完成,而不是通过轮询。然而,使用Apple Push服务通知客户端设备并不是理想的解决方案。问题是交付不保证(每个苹果),您无法确认交付。用户可以拒绝推送通知,如果您发送的通知太多,苹果可以拒绝发送通知,等等。您最好使用像
    PubNub
    Pusher
    这样的服务,它们以可靠的方式将通知推送到客户端,并且都有iOS API。它们很便宜。如果你想重新发明轮子并省钱,你可以查阅它们的工作原理并编写自己的版本


    当然,您可以进行客户端轮询,在这种情况下,异步
    NSOperation
    特别适合(它将在后台线程上运行,当情况发生变化时,您可以向
    NSNotificationCenter
    发布通知)。您可以了解有关如何实现该功能的更多信息。

    可能不是后台任务。你看过iOS 7中的后台抓取吗?但它不是每n分钟提取一次。您可以从服务器发送推送通知。在这种情况下,服务器将是访问API的服务器,而不是您的应用程序。或者你可以让应用程序在前台检查API。你是什么意思?