【问题标题】:How to catch WebKit Errors如何捕获 WebKit 错误
【发布时间】:2011-11-25 18:41:21
【问题描述】:

我想知道如何在我的 iPad 应用程序中捕获和处理 WebKit 错误。到目前为止,我没有找到有关 ErrorDomain 和 ErrorCodes 的信息。这是奇迹吗?

这是我在设备(iPad2、iOS 5.0.1)上测试期间不时在 Xcode 控制台上看到的内容。

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'

如何捕捉 WebKit 错误?在 alert() 期间引发此错误;在 UIWebView 中加载的 HTML 页面中的 JS 中。

【问题讨论】:

    标签: ios error-handling uiwebview webkit


    【解决方案1】:

    我不确定,但也许是:

    - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
    

    可以说明这个问题(即UIWebViewDelegate)。设置委托并实现此方法。将错误描述打印到控制台并查看。

    【讨论】:

    • 我已经实现了这个,但在这种情况下似乎没有调用它。
    • 我遇到了这个link,描述了如何捕获java脚本错误。也许这会有所帮助。
    • 对性能的影响似乎很大,不知道以后会在 UIWebView 中加载哪些 HTML 内容。有没有办法在 WebKit 中捕获错误?如果 WebKit 可以因为 HTML / JS 中的某些东西而导致整个应用程序崩溃,那么应该可以抓住它?!
    【解决方案2】:

    这是 RaffAl 答案的 Swift 3 版本。

    func webView(webView: UIWebView, didFailLoadWithError error: NSError) {
         print("An error occurred!: \(error)")
    }
    

    【讨论】:

      猜你喜欢
      • 2014-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-18
      • 2023-03-27
      • 1970-01-01
      • 2019-07-17
      相关资源
      最近更新 更多