我正在尝试创建一个iOS应用,允许用户创建无限数量的HTML文档并将其保存到应用的文档文件夹中。这有点像组合问题,但如何显示文档字典中的文件。
所以我的两个问题是:
如何显示文档字典中的HTML文件
和
如何允许用户创建无限的文件夹和html文件
对不起双重问题......
答案 0 :(得分:4)
首先,您需要知道文档目录的路径:
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];
您可以在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。
也可以告诉您的应用程序在其他位置打开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以获取示例。