5

我正在测试具有多种不同文档类型的 UIWebview - .xlsx、.jpg 等 - 它可以很好地打开其中的大多数。有时,我打开一个本地文件,此消息会出现在 Web 视图中:

Unable to Read Document
An error occurred while reading the document

我不关心“为什么”会发生此错误 - 例如,当我向 UIWebView 提供垃圾文件时(故意),它会发生。问题是我无法弄清楚如何检测“何时”发生这种情况。它不会触发webView:didFailLoadWithError,也不会触发NSException(通过@try@catch),当我检查 webViewDidFinishLoad 中的文档时,webView.request.HTTPBody

任何人都知道如何检测 UIWebView 何时无法显示内容?

4

2 回答 2

3
just call uiwebview delegate method 

- (void)webViewDidStartLoad:(UIWebView *)webView
{

}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSString *html = [webView stringByEvaluatingJavaScriptFromString:
                      @"document.body.innerHTML"];
    if ([html rangeOfString:@"Unable to Read Document."].location == NSNotFound) {

       NSLog(@"NO Error");

    }
    else
    {
//        NSLog(@"File contains Error");
    }

}
于 2013-06-27T10:17:57.853 回答
0

如果检查日志没有显示任何异常,请在实际设备上运行它。作为一点帮助,我的日志说

Cannot find data converter callback for uti public.data
Failed to generate preview

这意味着模拟器失败了。在对同样的问题感到沮丧之后,我完成了整个最终认证、安装和配置过程,并确认包含文本的 Word 97 和 Pages / Pages.zip 文件确实可以在实际设备上正常显示。解决了。模拟器本身坏了,这非常......令人不安,这个小说明似乎没有进入发行说明,并且也使开发变得有点复杂。但是,解决方法是在 Xcode 中选择设备并部署,它应该可以工作。

于 2011-02-27T01:18:41.173 回答