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

是否允许用户在Objective C中创建和查看HTML文件?,html,objective-c,ios,Html,Objective C,Ios,我正在尝试制作一个iOS应用程序,允许用户创建无限量的HTML文档,并将其保存到应用程序的documents文件夹中。这有点像一个组合问题,但是如何显示文档字典中的文件呢 因此,我的两个问题是: 如何显示文档字典中的HTML文件 及 如何允许用户创建无限的文件夹和html文件 对不起,我有两个问题 我正在尝试制作一个iOS应用程序,允许用户创建无限量的HTML文档并将它们保存到documents文件夹中 HTML文件只是文本(与大多数代码相关的文件一样),因此如果您希望以字符串形式获取其内容,请

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

因此,我的两个问题是:

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

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

对不起,我有两个问题

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

HTML文件只是文本(与大多数代码相关的文件一样),因此如果您希望以字符串形式获取其内容,请使用NSString的
+stringWithContentsOfFile

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

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

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

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents directory
如何显示文档字典中的HTML文件

HTML文件可能会显示在UIWebView中,请参见此示例

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

HTML文件只是文本(与大多数代码相关的文件一样),因此如果您希望以字符串形式获取其内容,请使用NSString的
+stringWithContentsOfFile

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

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

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

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents directory
如何显示文档字典中的HTML文件

HTML文件可能显示在UIWebView中。请参见此示例。

将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
实现很多功能,请花点时间阅读

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

[[UIApplication sharedApplication] openURL:stackoverflowAddress];
将HTML和其他文本文件保存到Documents目录 首先,您需要知道文档目录的路径:

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
实现很多功能,请花点时间阅读

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

[[UIApplication sharedApplication] openURL:stackoverflowAddress];

这完全不是我要问的。怎么会这样?它回答了如何建立和保存HTML文件。这完全不是我要问的。怎么会这样?它回答了如何建立和保存一个HTML文件。可能的重复是什么让你觉得有限制?显然存在物理限制(即iPhone/iPad上的存储量),但据我所知,应用程序可以创建的文档数量没有任意限制。我的意思是,不同于使用NSUserDefaults(您可以创建尽可能多的存储代码),可能会重复您认为有限制的内容?显然有物理限制(即iPhone/iPad上的存储量),但据我所知,应用程序可以创建的文档数量没有任意限制。我的意思是不同于使用NSUserDefaults(如果您可以创建尽可能多的代码保存),哇,这是我得到的最好的堆栈溢出答案!你得到一个加号并接受哇,这是我得到的最好的堆栈溢出答案!你得到一个加号并接受