我有一个UIWebView,我想加载一个SVG图像.该文件的内容是纯SVG即<svg>...</svg>.该文件可以正常加载到普通和Safari,也可以使用loadRequest加载到UIWebView中:执行以下操作:
url = [NSURL fileURLWithPath:path];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[webView loadRequest:req];
Run Code Online (Sandbox Code Playgroud)
但是,如果我将文件的内容加载到字符串中,并尝试将HTML字符串加载到webview中,则不会显示任何内容:
html = [NSString stringWithContentsOfFile:path
encoding:NSASCIIStringEncoding
error:nil];
[webView loadHTMLString:html baseURL:nil];
Run Code Online (Sandbox Code Playgroud)
上述两种技术之间有什么理由吗?他们不应该给出相同的结果吗?该文件是纯ASCII,所以我认为没有编码问题.
我想我现在可以通过使用文件获得我需要完成的工作,但我讨厌将文件系统用于非持久性数据.
任何帮助是极大的赞赏!!!
谢谢,罗恩
要解决此问题,您必须使用loadData:MIMEType:textEncodingName:baseURL:.
NSData *data = [html dataUsingEncoding:NSUTF8StringEncoding];
[webView loadData:data MIMEType:@"application/xhtml+xml" textEncodingName:@"utf-8" baseURL:baseUrl];
Run Code Online (Sandbox Code Playgroud)