1

私のアプリには、Web ページを表示する 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 に答える