2010-11-24 29 views
5

我正在測試一個UIWebview與許多不同的文檔類型 - .xlsx,.jpg等 - 並打開它們中的大多數就好了。不時,我打開本地文件,並正好出現在Web視圖此消息:檢測和自定義UIWebView的「無法讀取文檔」錯誤

Unable to Read Document 
An error occurred while reading the document 

我不關心「爲什麼」出現此錯誤 - 它發生,比如,當我喂UIWebView一個垃圾文件(故意)。問題是我無法弄清楚如何檢測「何時」發生這種情況。它不會觸發web視圖:didFailLoadWithError,它不會觸發NSException(通過@try & @catch),當我檢查文檔中webViewDidFinishLoadwebView.request.HTTPBody爲空。

任何人都知道如何檢測UIWebView何時無法顯示內容?

+0

這是一個老問題,但在我的情況`webView:didFailLoadWithError`在iOS 7/8中爲我工作。使用`stringByEvaluatingJavaScriptFromString`有時會傳遞給我數據,但它不是我正在尋找的數據(舊的?垃圾文件?)。 – testing 2014-12-16 15:58:57

回答

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"); 
    } 

} 
0

如果檢查日誌沒有顯示任何異常情況,請在實際設備上運行它。作爲一點幫助,我的日誌說

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

這意味着模擬器失敗。在遇到同樣的問題後,我通過了最終的認證,安裝和配置過程,並確認包含文本的Word 97和Pages/Pages.zip文件在實際設備上確實顯示得很好。解決了。模擬器本身被破壞,這非常麻煩,這個小小的註釋似乎並沒有將它放入發行註釋中,而且使開發變得複雜一點。但是,解決方法是在Xcode中選擇設備並部署出去,它應該可以工作。

+1

感謝您的回覆,但這不是問題。閱讀Word文件時我沒有問題。相反,我無法檢測UIWebView何時無法讀取任何特定文件。它與模擬器/設備差異無關。 – cetcet 2011-03-02 19:59:02

相關問題