将离线资源加载到 UIWebView 或替代解决方案中

Posted

技术标签:

【中文标题】将离线资源加载到 UIWebView 或替代解决方案中【英文标题】:Loading offline resources into UIWebView or alternative solution 【发布时间】:2012-02-29 21:37:00 【问题描述】:

在查找有关将离线资源加载到 UIWebView 的信息后,我似乎没有找到任何简单的解决方案。

我可以通过执行以下操作非常轻松地加载我的主 html 文件

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"tour" ofType:@"html"]isDirectory:NO]]];

问题是我的资源文件夹中的所有图像/等都没有加载。如果它像 tour.html 那样位于顶层,那么它会加载。

这些路径根本不像是在服务器上的路径。

【问题讨论】:

资源的路径是相对的还是绝对的?只要路径是相对的(例如 )并且图像也包含在您的包中,离线加载的页面可以加载图像等。请注意,您应该添加对包含 html 的文件夹的文件夹引用,而不是直接添加文件,因为 xcode 倾向于将所有内容都放在同一个文件夹中。 您可以在以下帖子***.com/questions/6179786/…中找到您的问题的答案 谢谢 Ben,我想我真的不知道你的意思是添加一个文件夹引用到包含我的 html 的文件夹,而不是直接添加文件。什么是文件夹的文件夹引用?就像你提到的那样,我的路径是相对的。 【参考方案1】:

当您将资源文件夹拖到 XCode 时,选择“为任何添加的文件夹创建文件夹引用”而不是默认的“为任何添加的文件夹创建组”。

您的文件夹图标将显示为蓝色而非黄色,这意味着它是对磁盘上实际物理文件夹的引用。

它会在添加到包中时保留其结构。

【讨论】:

谢谢 Gilad 成功了!我非常爱你,我整天都在寻找解决方案!

以上是关于将离线资源加载到 UIWebView 或替代解决方案中的主要内容,如果未能解决你的问题,请参考以下文章

使用实时更新将在线用户显示为绿色,将离线用户显示为灰色

将离线地图作为应用内购买出售

UIWebview 不会通过基本身份验证加载动态加载的资源(通过 jQuery 移动)

iOS6 UIWebView 中的第 3 方 cookie

当应用有互联网连接时,将离线核心数据与服务器同步

CocoaLibSpotify 在登录期间将离线可用曲目重置为 SP_TRACK_OFFLINE_WAITING