1

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

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

提前致谢!

4

1 回答 1

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 上测试。

于 2014-10-14T12:21:47.350 回答