我正在将一些HTML / JS从我在iPad上的文档目录的子目录中加载到UIWebView中。到目前为止一切正常。为了调试JS - 我在JS-File中添加了一些alert(..);
语句。大多数情况下此警报没有问题,但是在控制台和应用程序崩溃时偶尔会出现错误:
WebKit discarded an uncaught exception in the webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame: delegate: <(null)> A route has already been registered for class 'Publication' and HTTP method 'ANY'
问题1:可能是什么问题?我的意思是......这是一个简单的警报();什么似乎在控制台中导致此错误。
问题2:我可以在我的应用程序中捕获此错误吗?这样,由于简单的JS alert();
,应用程序不会崩溃谢谢
答案 0 :(得分:1)
您可以为UIWebView类创建JavaScriptAlert类别。 JavaScriptAlert + UIWebView.h
覆盖方法:
- (void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(id)frame;
这应该处理来自JavaScript的警报。
然后在javascript方面,如果你没有在调试模式下运行,你可以将警报或控制台日志设置为无操作功能。像
这样的东西var noop = function () {};
console.log = noop;
window.alert = noop;