iOS中离线网站的最佳做法

我正在构build一个需要下载大量html5内容的应用程序。 从本质上讲,它的作用类似于iPad上看到的杂志应用程序,除了使用图像之外,它将使用UIWebViews和HTML。

我的问题是什么将是最好的方法来存储这个。 我正在想一个下载的压缩文件,解压缩到包中,并包含HTML文件,图像,CSS等,或把所有的HTML在数据库中,只有图像,CSS,video等下载并放入捆绑。

一些考虑:

设备上的许多链接都是本地的,但有些会链接到外部网站。

我将需要能够对所有html内容进行全文search。

内容的大小会有所不同。

在一个侧面说明,我很乐意指出正确的方向,设置与UIWebViews分页。 潜在的很多UIWebViews。

谢谢,布兰登

你可以先下载一个反映网站图片结构的文件,css,htmls。

然后parsing这个文件,并开始下载每个文件并保存到文档目录中(因为你可能有大的图像,而且速度很慢,你可以保存它们的path)。 只要做一个本地html的请求。

编辑:你可以在webView委托中捕获请求,看看它是内部的还是外部的

webView:shouldStartLoadWithRequest:navigationType:在Web视图开始加载内容之前发送。

  • (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)请求导航types:(UIWebViewNavigationType)navigationType

UIWebViewDelegate协议参考

通过查看第一个和最好的HTML5概述书,可以很容易地回答这个问题。最好的部分是根据CC许可证发布的。

http://diveintohtml5.ep.io/offline.html < – 是关于cachingwebapps的整章,是您的应用程序的一个很好的起点。

这并不困难,而且是先进的,比这更冷。

如果你真的很想让这个应用程序脱机工作,那么它真的不应该超越链接总结。

虽然我确实有更多的资源在这一章的底部

标准:

  • HTML5规范中的离线Web应用程序

浏览器供应商文档

  • Firefox中的离线资源
  • HTML5离线应用程序caching ,是Safari客户端存储和离线应用程序编程指南的一部分

教程和演示:

  • Gmail移动版HTML5系列:使用appcache离线启动 – 第1部分
  • Gmail移动版HTML5系列:使用appcache离线启动 – 第2部分
  • Gmail移动版HTML5系列:使用appcache离线启动 – 第3部分
  • debuggingHTML5脱机应用程序caching
  • HTML5离线图片编辑器和上传器应用程序
  • 我学到的20件事关于浏览器和Web ,这是一个使用应用程序caching和其他HTML5技术的高级演示

我自己并没有使用它,但你可能想看看ASIHTTPRequest的ASIWebPageRequest类。