2015-08-17 46 views
0

我想基於JSON新數據爲我的iOS應用程序創建本地通知。如何爲本地通知創建後臺服務?

我已經創建了Web服務並解析了一些數據,並在第一時間以字符串形式存儲到plist中。 我想每隔n分鐘解析一次JSON,並與plist存儲的數據比較是否新到數據。 如果有什麼新到,我想顯示通知。

那些進程想要在沒有任何掛起的情況下執行應用程序活動和背景。

謝謝,

+0

可以用無聲推送通知來實現這一目標。 – Mukesh

+0

如何進行安靜通知? – AnswerMe

+0

查看答案,我發佈了它 – Mukesh

回答

2

iOS不支持這些類型的後臺服務。原因是他們耗盡電池並因此給用戶帶來不好的體驗。您可能想要在服務器端實現它。

蘋果只允許後臺運行的應用程序落入以下類別:VOIP,音頻流,位置和配件(藍牙)。

+0

嗨,請給出一些解決上述過程的方法。我想創建基於JSON數據的本地通知。 – AnswerMe

+0

那麼你不能,至少不是背景,除非你的應用程序屬於背景類別。服務器端推送通知是你最好的選擇。 – rckoenes

+0

如何每五分鐘解析一次JSON? – AnswerMe

1

如果你想從後臺服務器更新數據,你基本上有兩個選擇:

  • 使用後臺獲取。系統會以特定的時間間隔(,這並不完全在您的控制之下!)啓動您的應用程序,並給它一個下載的機會(看看this post是一個很好的介紹)。
  • 使用(靜默)推送通知。這當然需要在後端工作。

哪一個你應該使用取決於之類的東西

  • 無論你是否有在後臺控制(如果沒有,你不能發送推送通知)
  • 多久更新數據。如果它經常更新,背景獲取可能沒問題。如果它很少或不定期更新,那麼推送可能會更好。
+0

我可以證實,每5分鐘詢問一次背景獲取將不會被授予。 – rckoenes

0

如果推送通知服務於您的用途,您可以使用靜音推送通知。它不會進入通知紙盤。

1.As儘快通知時談到,下面的方法被調用,在此改變這種方法

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