2013-03-11 80 views
1

我開發了具有可動態地由用戶或管理員可以改變一些預裝的應用程序資源的應用程序,我必須把這些應用程序的資源在我的應用程序的文件目錄,以便它不會讓我更新iTunes上的應用程序。更新應用程序的資源從服務器中的iOS

的問題,我面對的,我必須從Web服務器下載本地設備上的所有應用程序資源時,應用程序啓動的第一次。

我正在尋找獲取我所有應用程序資源並保持更新的最佳方法?請幫幫我!

其實,問題是,我有成千上萬如圖像,HTML和CSS文件必須被下載的資源,最終用戶可能在清爽的感覺問題還是維持在服務器上的數據。 iOS中是否有任何文件傳輸協議(ftp)庫可供下載數據和更新?或任何其他方法?

+0

那麼,您可以向您的服務器發出請求,以在啓動應用程序時獲取所有必需的資源。 – 2013-03-11 08:40:22

回答

1

每次應用程序啓動時,您都需要從應用程序發送簡單的請求,這會向服務器詢問更新。 如果您的服務器上的內容已更新,則需要在應用程序中重新加載內容。

當然你的服務器必須知道內容是否有一些變化。您可以跟蹤服務器上的更改時間和應用程序中的最新內容更新時間。

+0

感謝您的回答,所以我必須在服務器上創建一些xml或json來維護版本控制?但是對於用戶來說,手動維護xml或json會是一個非常好的選擇。 – 2013-03-11 08:55:53

+0

還有一個問題需要我一個一個的從服務器下載文件,或者是否有其他方式同時獲取所有文件? – 2013-03-11 08:57:10

+0

用戶不需要知道有關實現的任何信息。您可以簡單地傳遞給應用程序「YES」或「NO」,然後自動加載內容或詢問用戶乳清是否要加載更新。 – zakhej 2013-03-11 08:58:33

1

您可以通過這種方法

- (void)applicationDidFinishLaunching:(UIApplication *)application 

{

//撥打電話到Web服務,並將其保存在你的文檔目錄從應用程序委託調用Web服務更新的數據

}

2

1)第一次把所有的r (服務器日期參數,如果null則服務器通過所有記錄,即第一次啓動應用程序)。

2)將該日期存儲在NSUserDefaults

3)第二次通過該日期,而request,如果日期不爲空(請求不是第一次)。

4)服務器檢查更新的記錄(記錄大於您通過的日期)。

NSString *strTodaysDate = @""; 
    if ([[NSUserDefaults standardUserDefaults] valueForKey:@"SyncDone"] != nil) 
    { 
     //If sync all data is done first time, then pass server date else pass empty date parameter. 
     strTodaysDate = [NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults] valueForKey:@"SyncDate"]]; 
    } //call web service with strTodaysDate as a parameter. 
+0

感謝您的回答,因此Web服務會發送任何xml或json的回覆? – 2013-03-11 09:10:41

+0

是的服務器響應包含XML/JSON,這取決於你的解析。 – Girish 2013-03-11 09:12:16

+0

服務器端的每個表都包含兩個日期字段,即LastModified&Created日期。當任何行發生任何更改時,則更改LastModifiedDate並將LastModifiedDate與我們作爲參數傳遞給Web服務的日期進行比較。 – Girish 2013-03-11 09:14:38

相關問題