2013-10-28 44 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