2013-03-11 77 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

相关问题