Отображение ppt, документ и xls в UIWebView не работает, но PDF делает

Похоже, что несколько человек на stackoverflow заставляют это работать, но их код не отправляется. Я использую

[web loadData:data MIMEType:MIMEType textEncodingName:@"UTF-8" baseURL:nil];

где MIMEType:

  • "application/vnd.ms-powerpoint"
  • "application/vnd.ms-word"
  • "application/vnd.ms-excel"

(BTW, я видел, что файлы DOC используют mimetype "приложение/MSWord", но "vnd" версия кажется более соответствующей. Я попробовал обоих на всякий случай.)

Я проверил, что мои 'данные' корректны. PDF и работа файлов TXT. Когда UIWebView отображает PPT, DOC или файлы XLS, это - пробел. Я поместил операторы NSLOG в свои вызовы UIWebViewDelegate.

  shouldStartLoadWithRequest:<NSMutableURLRequest about:blank> navType:5
  webViewDidStartLoad:
  didFailLoadWithError:Error Domain=NSURLErrorDomain Code=100 UserInfo=0x122503a0 "Operation could not be completed. (NSURLErrorDomain error 100.)"
  didFailLoadWithError:Error Domain=WebKitErrorDomain Code=102 UserInfo=0x12253840 "Frame load interrupted"

таким образом, очевидно, загрузка перестала работать, но почему? Если я изменяю свой mimetype на "текст/плоскость" для файла PPT, UIWebView загружает прекрасный и отображает непечатные символы, как ожидалось. Это говорит мне, что 'данные' передали loadData: в порядке.

Значение моего mimetypes плохо?

И только удостовериться мой PPT, DOC и файлы XLS действительно в порядке для отображения, я создал простой файл HTML с тегами привязки в файлы. Когда файл HTML отображен в Safari на iPhone, нажав на дисплеи файлов правильно в Safari.

Я пытался исследовать код ошибки, отображенный в didFailLoadWithError (100), но все зарегистрированные коды ошибок отрицательны и больше, чем 1 000 (как замечено в NSURLError.h).

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { NSLog(@"didFailLoadWithError:%@", error); }
11
задан slugolicious 25 March 2010 в 23:20
поделиться

1 ответ

Вы пробовали использовать следующий документированный метод?:

-(void)loadDocument:(NSString*)documentName inView:(UIWebView*)webView
{
    NSString *path = [[NSBundle mainBundle] pathForResource:documentName ofType:nil];
    NSURL *url = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView loadRequest:request];
}

// Calling -loadDocument:inView:

[self loadDocument:@"mydocument.rtfd.zip" inView:self.myWebview];

Это работает для них в iPhone OS 2.2.1: Excel (.xls) Keynote (.key.zip) Numbers (.numbers.zip) {{1 }} Pages (.pages.zip) PDF (.pdf) Powerpoint (.ppt) Word (.doc)

iPhone OS 3.0 поддерживает эти дополнительные типы документов : Rich Text Format (.rtf) Каталог Rich Text Format (.rtfd.zip) Keynote '09 (.key) Numbers '09 (. числа) Pages '09 (.pages)

9
ответ дан 3 December 2019 в 05:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: