2013-10-17 44 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

相關問題