我有一个NSData对象,我想在WebView中显示它。 WebView可以处理/显示NSData
对象吗?将NSData加载到WebView中
NSData *data = ... // some data I've gotten from NSURLConnection
WebView *webView = ... [[WebView alloc] init];
我有一个NSData对象,我想在WebView中显示它。 WebView可以处理/显示NSData
对象吗?将NSData加载到WebView中
NSData *data = ... // some data I've gotten from NSURLConnection
WebView *webView = ... [[WebView alloc] init];
没有Content-Type标头,Web视图无法知道如何解释数据。这就是添加Content-Type标头的原因。
如果由于某种原因想要捕获可随时重播的网络流量,请考虑编写自定义NSURLProtocol
。如果你为http
编写处理程序,那么它将覆盖内置函数;给它一个通透的记忆,它可以将这些请求重定向到真实的请求。
做这样的
NSString* newStr = [[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding];
[self.webView loadHTMLString: newStr baseURL:nil];
我认为问题是数据可能不是HTML(并且可能不是UTF-8,但这不太可能)。 – Tommy 2014-10-09 03:32:49
是的! 正确提供MIME类型时,NSData由UIWebView处理。 这段代码加载一个网页视图
NSString *path = [urlFileInView path];
NSData *data = [[NSFileManager defaultManager] contentsAtPath:path];
webViewForDocsView.delegate = self;
[webViewForDocsView loadData:data MIMEType:@"application/vnd.openxmlformats-officedocument.wordprocessingml.document" textEncodingName:@"UTF-8" baseURL:nil];
对不起,我正在使用'WebView',而不是'UIWebView' – 2014-10-09 03:41:36
什么是'NSData'描述一个.docx文件? UTF-8文本?一个PNG?还有别的吗? – Tommy 2014-10-09 02:59:16
它是可变的。我允许用户输入一个URL,我将它下载到一个NSData对象中,然后我想根据请求的响应标题显示它。 – 2014-10-09 03:01:13
除非您创建了自定义数据格式,否则“NSData”不再具有请求标头。它只是身体。直接将URL提供给视图。 – Tommy 2014-10-09 03:05:10