我有一块JS已经在静态HTML页面上测试过并且工作正常。我需要从存储在我的iOS应用程序包中的HTML文件中调用此JS。 JS本身在DOM上做了一个小小的歌曲和舞蹈,并在渲染页面的顶部显示一个div。
当我从UIWebView调用此文件时,我无法看到JS正在运行,DIV不会显示在普通HTML上。
如果我打开远程检查器,将HTML复制/粘贴到文件中并从磁盘中打开,一切正常。但是,如果我只是打开UIWebView,那么无效。
我该如何调试?
答案 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()函数。