允许用户在Objective C中创建和查看HTML文件?

时间:2012-04-13 02:35:33

标签: html objective-c ios

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

所以我的两个问题是:

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

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

对不起双重问题......

2 个答案:

答案 0 :(得分:4)

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

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

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

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

因此,如果您有一个字符串htmlContent和一个字符串htmlFilename,您可以保存它。请注意您正在使用的编码; HTML标头和元标记(如果存在)中的编码应与此处使用的编码匹配。

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

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

您可以在UIWebView中显示HTML。假设您有一个名为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来获得许多功能,请花点时间阅读UIWebViewDelegate Protocol Reference

在Safari中打开HTML

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

[[UIApplication sharedApplication] openURL:stackoverflowAddress];

答案 1 :(得分:0)

  

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

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

  

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

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

EDIT,可以使用

找到文档目录的路径
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents directory
  

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

HTML文件可能会显示在UIWebViews中,请参阅此related question以获取示例。