Как показать объект NSData, содержащий документ MS Office, без сохранения на диск? - PullRequest
0 голосов
/ 10 декабря 2011

У меня есть объект NSData, который содержит содержимое документа MS Office Word, который я хочу показать - используя UIWebView.

Я использую следующую команду:

[self.webView loadData: data MIMEType: @ "application / msword" textEncodingName: @ "utf-8" baseURL: nil];

К сожалению, я получаю пустой экран.

Если я пытаюсь сохранить данные в файл и открыть файл с помощью метода requestWithURL: url в UIWebView - файл открывается просто отлично. Однако для приложения крайне важно загрузить файл из данных в памяти и никоим образом не сохранять данные в файл на устройстве.

Что мне нужно показать, чтобы загрузить объект NSData, содержащий документ MS Office, без необходимости сначала сохранять данные на устройстве?

Ответы [ 2 ]

2 голосов
/ 30 декабря 2011

Попробуйте вместо:

[self.webView loadData:data MIMEType:@"application/msword" textEncodingName:@"utf-8" baseURL:[NSURL URLWithString:@""]];

В этом nil есть что-то, что заставляет UIWebView не загружать определенные типы. Не совсем точно, но у меня были похожие проблемы. Это решило их.

0 голосов
/ 30 декабря 2014

Существует еще один способ открыть офисный документ, указав правильный MIME-тип, как указано выше. для Excel / ppt и других, таких как msword.

NSString *mimtype = @"application/vnd.openxmlformats-officedocument.wordprocessingml.document";
self.webView.delegate = self;

[self.webView loadData:data MIMEType:mimtype textEncodingName:@"UTF-8" baseURL:nil];

Это будет работать и для docx.

Спасибо

...