在我的应用程序中有一个 UIWebView 显示网页。它有时会在 UIAlertView 中显示非常烦人的错误。我想拦截它并以更复杂的方式显示错误。
有没有办法可以拦截函数中的错误消息并自己决定我想用它做什么?
提前致谢!
这似乎做到了:
- (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 上测试。