【问题标题】:Debugging JS in UIWebView在 UIWebView 中调试 JS
【发布时间】:2014-07-06 12:58:54
【问题描述】:

我有一段 JS 已经在静态 HTML 页面上进行了测试并且工作正常。我需要从存储在我的 iOS 应用程序包中的 HTML 文件中调用此 JS。 JS 本身在 DOM 上做了一点点歌舞,并在渲染页面的顶部显示一个 div。

当我从 UIWebView 调用此文件时,我看不到 JS 的运行情况,DIV 不会显示在普通 HTML 上。

如果我打开远程检查器,将 HTML 复制/粘贴到文件中并从磁盘打开,一切正常。但是,如果我只是打开 UIWebView,就没有任何效果。

如何调试?

【问题讨论】:

    标签: javascript html ios cocoa-touch uiwebview


    【解决方案1】:

    您还可以通过在 Web 视图中运行 JavaScript 来获得漂亮的文本输出。

    假设我的 UIWebView 内容中有一些 JS,

    var myCatsName = "Bob";
    var myCatsType = "Silver Tabby";
    

    我想从我的 iOS 应用程序中描述我的猫,假设你有一个名为 webView 的 UIWebView,就这样做

    NSString* catDescription = [webView stringByEvaluatingJavaScriptFromString:@"myCatsName + ' (' +myCatsType + ')';"];
    

    这意味着你也可以查看你的变量——创建一个名为 debugMessages 的 JS 数组,将你想知道的任何内容添加到其中,然后通过将其与 \n 连接起来以将其作为字符串读出数组元素分隔符。

    您只需向 debugMessages 添加一个新元素,而不是使用 alert()。您的 iOS 应用可以定期轮询该变量的值。

    这不是一种对调试其他人的代码有用的方法,但如果你是开发 JS 的人,它会非常有用:-)

    【讨论】:

      【解决方案2】:

      对于那些绝望的人,显然在 UIWebView 中调试 JS 的唯一方法是使用穴居人方法。基本上 alert() 一切看起来可疑的东西。

      【讨论】:

        【解决方案3】:

        this answer 为 UIWebView 提供了一个漂亮的 console.log() 函数。

        【讨论】:

          猜你喜欢
          • 2017-08-22
          • 2013-02-27
          • 2015-07-15
          • 1970-01-01
          • 1970-01-01
          • 2013-01-08
          • 1970-01-01
          • 1970-01-01
          • 2011-02-15
          相关资源
          最近更新 更多