我需要在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
。
答案 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];
}