2017-02-20 33 views
0

是否有可能讓iOS應用程序從服務中提取數據,比如說www.mysite.com/iphone/notifications,這會產生JSON(下面僅僅是一個示例,可能是真的):從服務間隔中提取數據並顯示在通知中心

[ 
    { 
     "Message":"Notification 1", 
     "Detail":"Notification 1 detail" 
    }, 
    { 
     "Message":"Notification 1", 
     "Detail":"Notification 1 detail" 
    } 
] 

該應用程序然後會繼續註冊某種背景工作並每隔x分鐘收到一次通知。

這個概念是可能的還是我需要去槽Apple Push Notification Service

回答

0

您所描述的是Apple稱之爲「後臺抓取」的內容。

當iOS調用代理的performFetchWithCompletionHandler方法時,您的應用程序將會收到通知。然後由您來打電話給您的服務,並使用新的信息做些事情。您可以在此處創建本地通知。

iOS沒有(公開)定義多久調用一次委託方法,但它似乎增加了應用程序的使用次數,應用程序完成工作的速度以及是否準確報告是否下載了新數據或不。

鏈接Apple documentation

抓取內容的少量投機

應用程序需要檢查是否有新的內容定期可以要求系統喚醒他們,讓他們可以啓動讀取操作爲那個內容。要支持此模式,請在Xcode項目的Capabilities選項卡的Background模式部分中啓用Background fetch選項。 (您也可以通過在應用程序的Info.plist文件中包含具有獲取值的UIBackgroundModes項來啓用此支持。)啓用此模式並不能保證系統會隨時爲您的應用程序提供後臺提取。系統必須平衡您的應用程序的需求,以獲取其他應用程序和系統本身的需求。在評估這些信息後,系統會在有很好機會的情況下爲應用程序提供時間。

當一個好機會出現時,系統會喚醒或啓動您的應用程序到後臺並調用應用程序委託的應用程序:performFetchWithCompletionHandler:方法。如果內容可用,請使用該方法檢查新內容並啓動下載操作。一旦完成下載新內容,您必須執行提供的完成處理程序塊,並傳遞一個結果,指示內容是否可用。執行此塊會告訴系統它可以將您的應用程序移回掛起狀態並評估其用電量。快速下載少量內容並準確反映他們何時可以下載內容的應用程序比將需要很長時間下載內容的應用程序或聲明內容可用但後來可以執行的應用程序更有可能在未來獲得執行時間不下載任何東西。

相關問題