UIWebview加载ppt和doc crash app

时间:2014-07-10 12:50:46

标签: ios objective-c uitableview uiwebview

我需要在UIWebView中加载doc和ppt文件。 我在一个控制器中有两个不同的UIWebView

[self.webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"doc" ofType:@"doc"]]]];
[self.webview1 loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"ppt" ofType:@"ppt"]]]];

此应用程序崩溃:

OfficeImport`WrdEshBackground::takeClientData(WrdEshClientData*):
0x34c4fe3c:  str.w  r1, [r0, #224] //on this line

但如果我加载相同格式的文件:

[self.webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"ppt" ofType:@"ppt"]]]];
[self.webview1 loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"ppt" ofType:@"ppt"]]]];

效果很好。

如果我在UIWebView完成加载第一个请求时等待,然后开始第二个它运行良好。 但我需要在tableView中加载大量文件。 UITableViewCel将包含加载此文件的UIWebView

1 个答案:

答案 0 :(得分:-1)

我建议使用一种方法,我曾经使用带有MIME类型的NSData对象将数据显示到webView中,我已将我的文件转换为NSData对象并显示为

if ([docType isEqualToString:@"pdf"]) {
    [webView loadData:documentDataObject MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];
} else if ([docType isEqualToString:@"doc"]) {
    [webView loadData:documentDataObject MIMEType:@"application/msword" textEncodingName:@"utf-8" baseURL:nil];
} else if ([docType isEqualToString:@"docx"]) {
    [webView loadData:documentDataObject MIMEType:@"application/vnd.openxmlformats-officedocument.wordprocessingml.document" textEncodingName:@"utf-8" baseURL:nil];
} else if ([docType isEqualToString:@"jpg"]) {
    [webView loadData:documentDataObject MIMEType:@"image/jpeg" textEncodingName:@"utf-8" baseURL:nil];
} else if ([docType isEqualToString:@"png"]) {
    [webView loadData:documentDataObject MIMEType:@"image/png" textEncodingName:@"utf-8" baseURL:nil];
}