2011-04-27 62 views
8

我正在使用ASIHttpRequest庫來每分鐘詢問一次Web服務以獲取更新。該應用程序接收一個json字符串並對其進行解析。它工作正常。推送與iPhone上的Web服務輪詢

但我想使這更有效率..什麼是最好的方式讓服務器發送到應用程序的信息,只要有更新..而不是不斷地輪詢的Web服務?

回答

2

蘋果推送通知是不是一個很好的解決方案

1)您只能打包數量有限的數據 2)可能很難弄清楚用戶是否啓動了應用程序或退出了該應用程序。如果您在用戶退出應用程序後繼續發送PUSH消息,則最終會收到大量垃圾郵件。如果您嘗試將某些內容發送到服務器以表明用戶已關閉應用程序,以便它停止發送PUSH,則在應用程序崩潰時它可能不起作用。

我建議你使用套接字。

或者只是使用預定的循環每分鐘發出請求。

.....

但我不知道,如果你可以發送PUSH沒有警告的身體和聲音,只是發送0徽章。如果它打開的應用程序,它將能夠反饋到服務器繼續發送更新。如果沒有反饋,停止發送推送。

+0

如果我正確讀取,請使用推送通知指定屬性。你可以做一個徽章,並在應用程序中有一個函數(application:didFinishLoadingWithOptions:我相信)使用ASIHttpRequest來解析數據。這也應該可以提高手機的電池效率,因爲它不會經常通過互聯網輪詢數據來獲取數據。 – 2011-04-27 23:27:42

+0

是否有可能使用PUSH通知來簡單地向客戶端發送一個「觸發器」,通知應用程序發生了更新並且現在應該從Web服務請求新數據?這樣輪詢被消除了? – AJB 2012-12-26 10:03:28