UIWebView方法loadHTMLString:和loadRequest之间的区别

时间:2011-04-12 05:06:53

标签: iphone ios

我有一个UIWebView,我想在其中加载SVG图像。该文件的内容是纯SVG,即<svg>...</svg>。该文件可以正常加载到普通和Safari,也可以使用loadRequest加载到UIWebView中:执行以下操作:

url = [NSURL fileURLWithPath:path];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[webView loadRequest:req];

但是,如果我将文件的内容加载到字符串中,并尝试将HTML字符串加载到webview中,则不会显示任何内容:

html = [NSString stringWithContentsOfFile:path
                                encoding:NSASCIIStringEncoding
                                   error:nil];
[webView loadHTMLString:html baseURL:nil];

上述两种技术之间有什么原因吗?他们不应该给出相同的结果吗?该文件是纯ASCII,因此我认为没有编码问题。

我想我现在可以通过使用文件获得我需要完成的工作,但我讨厌将文件系统用于非持久性数据。

非常感谢任何帮助!!!

谢谢, 罗恩

2 个答案:

答案 0 :(得分:9)

要解决此问题,您必须改为使用loadData:MIMEType:textEncodingName:baseURL:

NSData *data = [html dataUsingEncoding:NSUTF8StringEncoding];
[webView loadData:data MIMEType:@"application/xhtml+xml" textEncodingName:@"utf-8" baseURL:baseUrl];

答案 1 :(得分:0)

我不确定这一点,但如果baseURL设置为nil,我认为webview不知道从哪里加载内容。

希望这个问题有助于你Link to resources inside WebView - iPhone

相关问题