【问题标题】:strange WebKit Error in UIWebView - can this be catched?UIWebView 中奇怪的 WebKit 错误 - 这可以被捕获吗?
【发布时间】:2011-11-21 12:49:12
【问题描述】:

我正在从 iPad 上的文档目录的子目录中将一些 HTML / JS 加载到 UIWebView 中。到目前为止一切正常。为了调试 JS - 我在 JS 文件中放了一些 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:可能是什么问题?我的意思是……这是一个简单的 alert();似乎是什么导致控制台出现此错误。

问题 2:我可以在我的应用程序中发现这个错误吗?这样应用就不会因为一个简单的 JS alert() 而崩溃;

谢谢

【问题讨论】:

  • 有没有办法捕捉 WebKit 错误并处理它们?我找不到有关 errorDomain 或 Codes 的信息。
  • 我也在寻找方法:(你应该投票赞成这个问题:)

标签: javascript ios uiwebview webkit crash


【解决方案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;

【讨论】:

    猜你喜欢
    • 2012-11-26
    • 1970-01-01
    • 2012-01-11
    • 2020-02-25
    • 1970-01-01
    • 2019-08-25
    • 2015-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多