Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS 7 UIWebView拦截警报_Ios_Uiwebview_Ios7 - Fatal编程技术网

iOS 7 UIWebView拦截警报

iOS 7 UIWebView拦截警报,ios,uiwebview,ios7,Ios,Uiwebview,Ios7,在我的应用程序中,有一个显示网页的UIWebView。它有时会在UIAlertView中显示一些非常恼人的错误。我想截取这个,并以更复杂的方式显示错误 是否有一种方法可以截获函数中的错误消息,并自行决定如何处理它 提前谢谢 这似乎可以做到: - (void)webViewDidFinishLoad:(UIWebView *)webView { JSContext *ctx = [webView valueForKeyPath:@"documentView.webView.mainFram

在我的应用程序中,有一个显示网页的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上测试。

如果是来自
UIWebView
的错误,则应先点击
webView:didFailLoadWithError:
。您可能可以在这里执行某些操作。页面加载完美,它只是在alertview中显示错误。我认为这只是简单地使用javascript警报功能。到时候您将不得不提供更多信息。你所添加的内容还不足以让人信服。错误是否与javascript有关,或者是您的站点实际返回错误,并且系统正在显示它;Zoltan,不,您只能截取页面加载和超链接(WebViewDelegate应该是StartLoadWithRequest)。如果您可以控制web内容,则可以重新设计alert()javascript调用,使其看起来更复杂