Android WebView Injected Javascript始终指示lineNumber 1

时间:2014-04-21 05:14:14

标签: javascript android webview

我在this之后向WebView注入了一些Javascript代码。基本上,我覆盖onPageFinished的{​​{1}}回调,并通过WebView注入javascript文件。 webView.loadUrl("javascript:"+myJSCode)版本是4.0.0。
此外,我覆盖WebView回调以跟踪onConsoleMessage中的javascript。当执行一行js代码时,我使用WebView显示LogCat中代码的行号。console.log('lineCounter') 这在我的演示项目中工作正常,执行所有代码并正确记录行号。但令我感到困惑的是,这些js代码中的<br>似乎是空的。

  

logcat的:
   控制台,JS 1,lineNumber 2 of    控制台,JS 2,lineNumber 4 of    控制台,JS 3,lineNumber 6 of    控制台,JS的结尾,

的第8行

当我将此功能添加到我的开发项目时,会出现问题。我和我在演示项目中所做的一样。代码按顺序执行,但lineNumber始终为1,并在完成执行所有js代码之前抛出consoleMessage.sourceId()。此外,这次uncaught syntaxError, unexpected identifier显示为consoleMessage.sourceId()的网址。

  

logcat的:
   控制台,JS 1,https:// xxx / home的lineNumber 1    控制台,JS 2,https:// xxx / home的lineNumber 1    未捕获的SyntacError,意外标识符

任何建议表示赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

我终于通过使用Closure Compiler来编译所有注入的js代码来解决这个问题。没有抛出异常,但lineNumber仍然是1。