2017-08-15 39 views
0

我正在使用Swift 3爲iOS 10開發應用程序。我希望讓應用程序在後臺以靜默方式從遠程服務器獲取數據併發送新數據可用時將通知推送給用戶。我知道一個遠程通知可能是更好的方式來處理這個問題,但是有沒有一種方法可以在本地實現?我知道我可以在特定時間或用戶進入特定位置時推送通知,但有沒有辦法以編程方式觸發通知?在iOS 10中滿足特定條件時觸發本地通知(Swift 3)

+0

你有沒有看着'Timer'類? – Malik

+0

@Malik我知道如何用計時器觸發通知。事情是我只想在服務器上有新的數據可用時觸發它們,而不是在特定的時間。 – antande

+0

您在您的問題中聲明,您希望「稍後在後臺無提示地從遠程服務器獲取數據」。你如何定義'偶爾一次'? – Malik

回答

0

當數據到達時,您可以發送「UILocalNotification」通知。 (推送通知涉及到服務器,證書...等等..)

我建議:

a)使用performFetchWithCompletionHandler

爲每個ADC:

「當一個好機會出現,系統會將您的應用程序喚醒或啓動到後臺並調用應用程序委託的應用程序:performFetchWithCompletionHandler:method。使用該方法檢查新內容並在內容可用時啓動下載操作。 b)在performFetchWithCompletionHandler觸發下載。將completionHandler傳遞給將使用NSURL會話的代碼。

c)在下載完成後,觸發本地notifcation,並執行completionHandler iOS版已送你「performFetchWithCompletionHandler」

像往常一樣記你有嚴格的時間限制..

另一個方式(也許簡單..)使用backgroundSessionConfiguration/downloadTask。

呼叫

回只需發送一個本地通知。

+0

這非常有幫助。非常感謝你。猜測這種方法唯一的問題是,如果用戶終止應用,用戶將不會收到通知。 – antande

+0

的方式是使用本地通知。你添加它們,你的應用程序將在未來被喚醒。 – ingconti

相關問題