【问题标题】:HTML contents preloaded into an app and then updated from the InternetHTML 内容预加载到应用程序中,然后从 Internet 更新
【发布时间】:2013-01-15 23:47:05
【问题描述】:

标题说明了(相当)全部:我想分发一个应用程序,其中一些 HTML 页面预加载到本地 Documents 文件夹中(它们反映了互联网上可用的迷你移动网站的内容);那么,当页面内容更新时,应用程序中的本地HTML文件也应该更新,这样用户在不连接互联网的情况下也可以浏览更新的信息。

应用程序必须从第一次启动开始工作,这要归功于预加载的页面,然后定期自我更新(我不需要检查单个文件的修改日期/时间,只要检查和更新它们就足够了本地副本超过 x 天)。

问题:我想我可以做到这一切,但我问自己是否有一些框架/类可以自动完成,因为这听起来很痛苦:)

【问题讨论】:

    标签: ios objective-c caching uiwebview


    【解决方案1】:

    考虑使用ASIHTTPRequest。看看这个SO question

    具体来说,您可能想查看 ASIWebPageRequest:

    下载完整的网页,包括图片等外部资源 和样式表。任何大小的页面都可以无限期缓存,并且 即使没有网络也显示在 UIWebview / WebView 连接。

    我也将AFNetworking 用于我自己的个人项目,它让我的生活轻松了 10 倍。在AFNetworking FAQ 页面上,有一个关于离线查看缓存机制的问题。它提到 iOS 5 中的 NSURLCache 引入了对缓存到磁盘以供离线使用的支持 - 但仅适用于 http。如果需要缓存https,可以考虑使用SDURLCache

    这里有一个关于 iOS 网络缓存的简短 additional resource。 阅读标题为 iOS 网络缓存

    的部分

    【讨论】:

    • ASI 很酷,但一年多以来没有积极开发:(
    【解决方案2】:

    如果您正在考虑使用相当于浏览器缓存的方式预先弹出您的 iOS 应用程序,那么 https://github.com/rs/SDURLCache 可能值得研究。

    它与现有的 NSURLConnection 框架(例如 AFNetworking)挂钩,您只需在 NSURLRequest 中设置正确的缓存策略。

    鉴于它的开源,您应该能够弄清楚如何将数据放置在哪里,这样它就可以在第一次从服务器获取数据的情况下加载它,然后只需指定您希望缓存何时清除自身,以便从服务器获取数据?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      • 2016-09-26
      • 1970-01-01
      • 1970-01-01
      • 2013-07-28
      相关资源
      最近更新 更多