2010-06-14 31 views
1

如何格式化NSURL(什么路径或路径生成器函数),以便我可以显示下载的本地文件(不是应用程序NSBundle的一部分)以供脱机使用?这个想法是拦截一个HTML文件,将其清理并存储在iFoo应用程序特定的存储区域中,然后使用UIWebView来显示它。以后如何使用UIWebView显示下载的文件?

接下来,我将关注在iFoo(iPhone/iPad)上处理文件的RTFM,但任何快速入门技巧都是值得赞赏的。

回答

1

完成下载后,您可以在字符串中读取本地文件,然后使用UIWebView的loadHTMLString:baseURL:从该字符串中加载HTML。使用相对路径并设置正确baseURL

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *yourFolderPath = [[paths objectAtIndex:0] stringByAppendingPathComponent: @"yourFolder"]; 
NSString *filePath = [yourFolderPath stringByAppendingPathComponent: @"yourFile.htm"]; 
NSString *fileContents = [NSString stringWithContentsOfFile: filePath]; 
NSURL *baseURL = [NSURL fileURLWithPath: yourFolderPath]; 
[yourWebView loadHTMLString: fileContents baseURL: baseURL]; 
+0

谢谢,这很有趣。但是,我宁愿将HTML文件和任何关联的CSS(等)放在一个目录中(或任何iFoo用来代替目录/文件夹)。我想真正的问题仍然是存储文件,然后提供一个路径名称。不幸的是,我太无知了。 (仍然,这是一个很酷的技巧,并且允许您为文本中的相对路径提供上下文/文件夹/目录)。 – Roboprog 2010-06-14 19:06:16

+0

@Roboprog我编辑了我的答案来解决你的问题。你应该在你的html文件中为你的css和图像使用相对文件路径,这样设置UIWebView的loadHTMLString的baseURL允许文件在它所指向的特定文件夹中被搜索。 – luvieere 2010-06-14 19:20:22

+0

再次感谢您的更新。它看起来像NSDocumentDirectory(大概这是嵌套在NSHomeDirectory作为“./Documents”)可以用来凑合NSURL来完成这项工作。现在生成一些假冒内容并尝试一下! – Roboprog 2010-06-14 19:24:00

相关问题