【问题标题】:offline app using UIWebview for iPad使用适用于 iPad 的 UIWebview 的离线应用程序
【发布时间】:2011-04-21 12:50:03
【问题描述】:

我正在尝试构建一个具有一个 UIWebview 的 iPad 应用程序。内容在 asp.net 中。现在的主要要求之一是我的应用程序应该支持离线模式。

首先,我尝试查看 Html5 缓存清单,但根据此 SO Answer 它不适用于 UIWebview

然后我尝试搜索 UIWebview 可用的缓存机制,我发现了很多关于 SO(This,This,This,This) 的问题,但在这种情况下没有任何结论或可能是旧的。
我的基本要求是用户浏览的任何页面都应该获得缓存(html、css、js.images),并且下次当用户访问同一页面时,它应该从缓存中传递。

所以我的问题是
1) 如何使用 Html5 缓存清单或 UIWebview 缓存实现此目的
2) 我的应用程序使用了大量图像,其中一些以 MB 为单位,所以是否有任何大小限制

如果有人可以提供完整的教程参考,我将不胜感激。 谢谢。
**更新:**我可以同时利用本地磁盘缓存(用于图像)和 html5 本地存储(用于数据)吗?如果是,那么我如何提供本地图像路径。?

【问题讨论】:

    标签: iphone ipad caching html offline


    【解决方案1】:

    我会试试ASIWebPageRequest。它仍然被列为实验性的,所以它还没有完全成熟,但它的目的是完全按照你的要求去做。

    【讨论】:

    • 谢谢机器人...但是有存储限制吗?
    • 我不知道,我还没有机会亲自尝试。
    • 我试过了,好像没有限制。但问题是,如果你需要它来下载大视频,你需要等待很长时间。
    • 这是一个很好的解决方案。我刚刚完成了一个大型 ipad 项目,使用 ASIWebPageReqeust 来做到这一点。该应用程序使用基于 Web 的自定义 cms 使用 WYSIWYG 构建网页,然后该应用程序使用 json webservice 获取内容以移交 url。唯一的问题是你需要确保你没有在运行时下载的网页上使用任何代码(ajax)。
    【解决方案2】:

    您可以使用 HTML5 离线存储来存储您的应用代码和数据。但是您仍然需要一个简单的引导程序 js 代码来从离线存储加载应用(基本上是 eval)。您还可以将小图像(base64 编码)存储在离线存储中。缺点是如果有更新版本的应用程序,您必须推出自己的版本控制并更新本地存储。

    【讨论】:

    • HTML5 离线存储在 iPhone 中的存储限制为 5MB。在 iPad 上不确定。
    • 谢谢。我在 iPad 上测试了离线存储限制为 5MB。但是,如果您的存储空间增长超过 5MB,我将弹出一条消息,要求用户允许存储空间增长。我能够插入高达 50MB 的数据。虽然它要求我 5 次允许:)
    • @d.ennis 正如我所提到的,在用户许可的情况下,我当然可以存储多达 50MB,但最终我们最终构建了本机应用程序,因为我们想存储多达 500MB 的数据。跨度>
    • @Nnp 如果您使用应用程序缓存,那是不可能的?我需要保存大约 200MB 的空间。
    • @d.ennis 不知何故 UIWebview 忽略了应用程序清单文件,所以我无法验证 HTML 应用程序缓存。我不知道 UIWebView 的当前改进是什么..
    【解决方案3】:

    您的问题中提到的参考似乎不再相关

    首先我尝试查看 Html5 缓存清单,但根据 SO Answer 它不适用于 UIWebview

    该问题的latest accepted answer 表示从 iOS 4.0 开始,UIWebView 支持 HTML5 缓存清单,只要清单文件的 mime 类型正确设置为 text/cache-manifest

    【讨论】:

      猜你喜欢
      • 2011-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      相关资源
      最近更新 更多