我正在测试一个包含许多不同文档类型的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何时无法显示内容?
答案 0 :(得分: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");
}
}
答案 1 :(得分:0)
如果检查日志没有显示任何异常,请在实际设备上运行它。作为一点帮助,我的日志说
Cannot find data converter callback for uti public.data
Failed to generate preview
这意味着模拟器失败了。在对同样的问题感到沮丧之后,我通过了整个最终认证和安装以及配置过程,并确认包含文本的Word 97和Pages / Pages.zip文件确实在实际设备上显示得很好。解决了。模拟器本身已经坏了,这非常令人不安,这个小小的音符似乎没有进入发行说明,也使开发变得复杂一点。但是,解决方法是选择Xcode中的Device并进行部署,它应该可以工作。