UIWebView - 调试javascript

时间:2011-11-22 16:26:19

标签: javascript ios uiwebview

我遇到了以下问题:我的应用程序必须加载一些网页内容,并且由于某种原因,内容未按预期呈现,(网页内容在移动版游戏中完美运行)。 因此,我需要一种方法来获取UIWebView中的javascript错误通知。

我看了this回答,但我实际上无法使其有效:(

有人,已经这样做了,请解释我该怎么办?

另一个问题是:iOS 5.x中的UIWebView是否集成了硝基引擎?因为有人说是的,别人说没有......

提前致谢

1 个答案:

答案 0 :(得分:3)

我一直在运行相当多的Javascript,一个看不见的webview。

在iOS上调试Javascript有点棘手。以下我发现有帮助,虽然我没有发现银子弹:

  • 没有console.log。我自己实现了它,使用了其他人使用的- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
  • remote debugging in iOS 5.x有设施。您可以设置断点,检查变量等,但不能设置分步调试器。 iOS强制限制为10秒,如果javascript调用占用时间,则会在没有警告的情况下终止。这使得这个调试桥的用处大大降低。
  • iOS 5.x有可怕的错误。没有堆栈跟踪,没有行号,没有文件名,没有。我经常遇到'undefined' is not a function而没有额外的帮助。
  • iOS 4.3有更好的错误。仍然没有堆栈跟踪,但存在行号和文件名。
  • 有一种方法- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;作为远景可能会报告Javascript错误。它没有。

我没有尝试的东西,但在我的名单上:

  • Weinre看起来很有趣,如果我的目的有点重。
  • JSConsole看起来像是赢家,但对调试错误可能不是很有帮助。