0

我正在尝试制作一个 iOS 应用程序,允许用户创建无限量的 HTML 文档并将它们保存到应用程序的文档文件夹中。这有点像一个组合问题,但我如何显示文档字典中的文件。

所以我的两个问题是:

如何显示文档字典中的 HTML 文件

如何允许用户创建无限的文件夹和 html 文件

对不起,双重问题...

4

2 回答 2

4

将 HTML 和其他文本文件保存到文档目录

首先,您需要知道文档目录的路径:

NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];

您可以在那里创建文档和目录,直至设备存储的限制。但是请注意,只有根目录中的文件才会显示在 iTunes 文档共享中。

所以,如果你有一个 stringhtmlContent和一个 string htmlFilename,你可以保存它。请注意您使用的编码;HTML 标头和元标记(如果存在)中的编码应与此处使用的编码匹配。

NSString *htmlPath = [documentsPath stringByAppendingPathComponent:htmlFilename];
[htmlContent writeToFile:htmlPath atomically:NO encoding:NSUTF8StringEncoding error:nil];

在您的应用程序中显示 HTML 文件

您可以在UIWebView. 假设你有一个叫webView,你可以在其中显示任何NSURL对象:

NSURL *stackOverflowAddress = [NSURL URLWithString:@"http://www.stackoverflow.com"];
[[self webView] loadRequest:[NSURLRequest requestWithURL:stackOverflowAddress]];

这可以包括您刚刚编写的文件:

NSURL *htmlURL = [NSURL fileURLWithPath:htmlPath];
[[self webView] loadRequest:[NSURLRequest requestWithURL:htmlURL]];

或者,您可以直接将字符串放入其中:

[[self webView] loadHTMLString:htmlContent baseURL:nil];

如果您UIWebView在很多功能中使用 a,请花时间阅读UIWebViewDelegate 协议参考

在 Safari 中打开 HTML

也可以告诉您的应用程序在其他地方打开 URL。这通常会导致 Safari 打开。但是,由于 Safari 无法访问您的应用程序的文档目录,因此当文档保存在本地时,它无法显示文档。

[[UIApplication sharedApplication] openURL:stackoverflowAddress];
于 2012-04-13T03:18:41.753 回答
0

我正在尝试制作一个 iOS 应用程序,允许用户创建无限量的 HTML 文档并将它们保存到文档文件夹中。

HTML 文件只是文本(就像大多数与代码相关的文件一样),因此您希望将其内容作为字符串获取,请使用 NSString 的+stringWithContentsOfFile.

如何允许用户创建无限的文件夹和 html 文件

至于写作,只要你用路径扩展名.html编写你的字符串,它将是一个完全有效的HTML文件。

编辑,可以找到文档目录的路径

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents directory

如何显示文档字典中的 HTML 文件

HTML 文件可能会显示在 UIWebViews 中,请参阅此相关问题以获取示例。

于 2012-04-13T02:50:32.330 回答