【发布时间】:2017-09-10 15:00:57
【问题描述】:
我的 IOS 应用程序文档文件夹中有 file.xlsx。我想在 UIWebview 中显示打开这个 excel 文件。但我遇到了错误,
Error Domain=WebKitErrorDomain Code=102 "Frame load interrupted"
但 pdf 和 CSV 文件正在打开, 我是 IOS 的新手,我想从过去 2 天开始,我尝试了所有可能的方法让它工作。什么都没解决..请帮帮我
更新:即使我将其重命名为 file.xls,它也不会打开 下面是我的代码,
NSURL* nsUrl = [NSURL URLWithString:url];
_urlReq = [NSURL URLWithString:url];
[self performSelector:@selector(urlRequestForFile) withObject:nil afterDelay:0];
_webView.delegate = self;
NSURLRequest* request = [NSURLRequest requestWithURL: nsUrl];
[_webView loadRequest: request];
-(void)urlRequestForFile{
self.connection = nil;
NSURLRequest *requestForFile = [NSURLRequest requestWithURL:_urlReq cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:300];
_connection = [[NSURLConnection alloc]initWithRequest:requestForFile delegate:self startImmediately:YES];
_ongingServiceFlag = YES;
}
在使用 UIWebView 在我的 IOS 应用程序中显示 xlsx 文件时需要帮助,或者是否有任何其他方法可以在不使用第三方应用程序的情况下在应用程序中显示 xlsx 文件?
更新(解决方案):
我很惊讶地看到即使在苹果网站中提到的 UIWebView 也没有对 XLSX 的支持,但实际上 UIWebView 完全支持 XLSX 格式。您需要确保的一件事是指定正确的“textEncodingName”值。如果您的文件以 base64 二进制编码存储,则必须将其提及为 textEncodingName:@"base64" 否则您必须将其提及为“utf-8”
下面一行对我有用:
[webView loadData:urlData MIMEType:@"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" textEncodingName:@"base64" baseURL:nil];
【问题讨论】:
-
您可能更喜欢使用
QLPreviewController。 -
并使用相关代码更新您的问题,以便人们可以帮助您解决问题。
-
仅供参考 - xls 和 xlsx 是两种完全不同的文件格式。只需将一个重命名为另一个不会更改文件的格式。
-
@rmaddy.. 我不知道 QLPreviewController。你有任何参考链接,他们展示了如何使用它来实现吗?
-
您能找到适合您的答案吗?
标签: ios objective-c uiwebview