在UIWebView中调试JS

时间:2014-05-18 14:24:55

标签: javascript html ios cocoa-touch uiwebview

我有一块JS已经在静态HTML页面上测试过并且工作正常。我需要从存储在我的i​​OS应用程序包中的HTML文件中调用此JS。 JS本身在DOM上做了一个小小的歌曲和舞蹈,并在渲染页面的顶部显示一个div。

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

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

我该如何调试?

3 个答案:

答案 0 :(得分: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的那个方法它非常有用:-)

答案 1 :(得分:0)

对于那些绝望的人来说,显然在UIWebView中调试JS的唯一方法是使用caveman方法。基本警告()所有看起来可疑的东西。

答案 2 :(得分:0)

对于后来遇到此问题的人,this answer为UIWebView提供了一个漂亮的console.log()函数。