2013-10-28 43 views
1

在我的應用程序有表示Web網頁一個UIWebView。它有時會在UIAlertView中顯示真正煩人的錯誤。我想攔截這個並以更復雜的方式顯示錯誤。的iOS 7的UIWebView攔截警報

有沒有一種方法,我可以在一個函數截取錯誤信息,併爲自己決定什麼,我想用它做什麼?

在此先感謝!

+0

如果是從'UIWebView'應該打'webView的錯誤:didFailLoadWithError:'前手。你可能可以在這裏做點什麼。 – Popeye

+0

的網頁加載完美,它只是顯示在alertview錯誤。我客串它只是使用JavaScript警報功能。 –

+0

你將不得不提供更多信息。你剛剛添加的東西不夠用。是錯誤的JavaScript相關或是你的網站實際返回和錯誤和系統顯示它。 – Popeye

回答

2

這似乎做到這一點:

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    JSContext *ctx = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]; 
    ctx[@"window"][@"alert"] = ^(JSValue *message) { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"JavaScript Alert" message:[message toString] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alert show]; 
    }; 
} 

注:僅在iOS上測試了8