gpt4 book ai didi

objective-c - iPad - 我应该如何分发离线 Web 内容以供应用程序中的 UIWebView 使用?

转载 作者:搜寻专家 更新时间:2023-10-30 20:27:26 24 4
gpt4 key购买 nike

我正在构建一个需要下载 Web 内容以便在 iPad 上离线查看的应用程序。目前我正在从 web 加载一些 web 内容以用于测试目的并使用 UIWebView 显示它。实现起来很简单。现在我需要做一些修改以支持离线内容。最终,离线内容将下载到用户可选择的包中。

在我看来,我有很多选择,但我可能错过了一些:

  1. 将内容打包为 ZIP(或其他存档)文件,并在下载到 iPad 时解压缩内容。
  2. 将内容放入 SQLite 数据库中。这似乎需要一些第 3 方库,如 FMDB .
  3. 使用Core Data .据我了解,它支持多种存储格式,包括 SQLite。
  4. 使用文件系统并单独下载每个需要的文件。好的,不是真正的 bundle ,但也许这是最佳选择?

注意事项/问题:

  1. 每种方法的存储限制和性能限制是什么?每个 iPad 应用程序是否有总体存储限制?
  2. 如果我要让用户浏览下载的内容,哪个选项更容易编写代码?
  3. 启动本地 Web 服务器似乎是处理显示内容的运行时方面的最有效方法之一。是否有像选项 1-3 这样从 bundle 中加载的任何开源示例?
  4. 另一方面是内容创建,从这个角度来看,压缩内容(选项 1)似乎是最简单的。其他选项似乎需要创建工具来支持内容创建者。

最佳答案

如果您可以控制内容,我建议您混合使用第一个和第三个选项。 如果内容是由您创建的(如关卡等),则只需将其存储在服务器上,下载一个 zip 文件并将其存储在本地。使用 CoreData 存储关于您下载的内容的索引,例如存储它的文件夹的路径和它的名称/来源/等等,但不是原始数据.数据库不被认为保存大量原始内容,而是保存结构化数据。即使他们可以——也不会这样做。

供您考虑:

  1. 磁盘空间是我知道的 iPad 的唯一限制。但是,如果数据库变得太大,它们往往会变慢。如果您几乎不扫描数据,直接使用文件系统——可能会更快、更便宜。
  2. CoreData 中的索引可以存储所有相关数据。您将有非常容易和非常快速的访问。打开内容将从文件系统加载它,这种方式快速、廉价且不会对索引造成压力。
  3. 你为什么要这样做?将您的 WebView 重定向到 file://URL 会产生相同的效果,不是吗?
  4. 现在应该得到答复。

如果您没有控制权,则使用与上述相同的方法,但按照选项四中的建议分别下载每个文件。解压后两种情况基本相同。

如有问题请回来

关于objective-c - iPad - 我应该如何分发离线 Web 内容以供应用程序中的 UIWebView 使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3508712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com