【问题标题】: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() 一切看起来可疑的东西。