它看起來像是一些人在stackoverflow得到這個工作,但他們的代碼不張貼。我使用在UIWebView中顯示ppt,doc和xls不起作用,但pdf確實是
[web loadData:data MIMEType:MIMEType textEncodingName:@"UTF-8" baseURL:nil];
其中的MIME類型是:
- @ 「應用程序/ vnd.ms - PowerPoint中」
- @ 「應用程序/ vnd.ms字」
- @「應用程序/vnd.ms-excel」
(順便說一句,我見過的DOC文件使用MIME類型@‘應用程序/ 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更改爲@「text/plain」作爲PPT文件,UIWebView將正常加載並顯示不可打印的字符,如預期的那樣。這是告訴我傳遞給loadData的'數據':沒問題。
意思是我的mimetypes不好?
爲了確保我的PPT,DOC和XLS文件確實可以正常顯示,我創建了一個簡單的帶文件錨標籤的html文件。當在iPhone上的Safari中顯示html文件時,單擊這些文件可以在Safari中正確顯示。
我試圖研究在didFailLoadWithError(100)中顯示的錯誤代碼,但所有記錄的錯誤代碼都是負數並且大於1000(如NSURLError.h中所示)。
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { NSLog(@"didFailLoadWithError:%@", error); }
是的,我已經使用loadRequest,並且在將附件文件作爲我的項目的一部分時工作正常。我這樣做只是爲了測試,以確保我的文件沒問題。但是,在我的真實應用程序中,文件是從服務器下載的,我擁有的僅僅是NSData。 – slugolicious 2010-04-23 11:20:02
你不能使用NSURL * url = [NSURL fileURLWithPath:path];和NSURLRequest * request = [NSURLRequest requestWithURL:url];從你的服務器下載?我可以。是否有某些原因導致您無法在服務器上加載文件的URL? – 2010-04-23 11:47:33
這種方法很好,歡呼! – AdamM 2012-09-21 13:28:40