iOS 7 UIWebView拦截警报

时间:2013-10-28 15:21:38

标签: ios uiwebview ios7

在我的应用程序中,有一个显示网页的UIWebView。它有时会在UIAlertView中显示非常烦人的错误。我想截取这个并以更复杂的方式显示错误。

有没有办法可以拦截函数中的错误消息,并自己决定我想用它做什么?

提前致谢!

1 个答案:

答案 0 :(得分: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上测试。