2014-10-09 5 views
-2

У меня есть объект NSData, и я хочу отобразить его в WebView. Может ли WebView обрабатывать/отображать объекты NSData?Загрузка NSData в WebView

NSData *data = ... // some data I've gotten from NSURLConnection 
WebView *webView = ... [[WebView alloc] init]; 
+0

Что описывает 'NSData'? Текст UTF-8? PNG? Что-то другое? – Tommy

+0

Это переменная. Я разрешаю пользователю вводить URL-адрес, я загружаю его в объект NSData, а затем я хочу отображать его в зависимости от того, что были заголовками ответа запроса. –

+0

Если вы не создали пользовательский формат данных, 'NSData' больше не имеет заголовков запросов. Это всего лишь тело. Прямой URL-адрес. – Tommy

ответ

0

Без заголовка Content-Type веб-представление не имеет способа узнать, как интерпретировать данные. Вот почему был добавлен заголовок Content-Type.

Если по какой-либо причине вы хотите захватить сетевой трафик NSData, который вы можете воспроизводить, когда захотите, подумайте о том, чтобы написать пользовательский номер NSURLProtocol. Если вы напишите обработчик для http, то он переопределит встроенный; дать ему падающую память и перенаправить эти запросы на реальный.

0

Делают это, как этот

NSString* newStr = [[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding]; 

[self.webView loadHTMLString: newStr baseURL:nil]; 
+0

Я думаю, что проблема в том, что данные могут быть не HTML (и, возможно, не UTF-8, но это маловероятно). – Tommy

2

Да! NSData обрабатывается UIWebView при правильном использовании с типом MIME. Этот фрагмент загружает файл .docx в WebView

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]; 
+0

Извините, но я использую 'WebView', а не' UIWebView' –

Смежные вопросы