Android:Logcat不适用于JS console.log()

时间:2012-07-07 08:26:15

标签: android-webview android-logcat

我的应用是Android原生,html5的组合。直到上周,我才能看到来自WebView内部运行的本机代码和javascript代码的日志消息。但突然Logcat没有显示来自javascript的控制台消息,尽管它显示来自我的本机代码的日志消息。 有什么想法吗?

提前致谢。 Venkat

5 个答案:

答案 0 :(得分:20)

您可以尝试通过创建自定义WebChromeClient来向WebView添加控制台消息处理程序:

class MyWebChromeClient extends WebChromeClient
{
    @Override
    public boolean onConsoleMessage(ConsoleMessage cm)
    {
        Log.d("CONTENT", String.format("%s @ %d: %s", 
                    cm.message(), cm.lineNumber(), cm.sourceId()));
        return true;
    }
}

然后附上它:

someWebView.setWebChromeClient(new MyWebChromeClient());

答案 1 :(得分:15)

仅适用于android native& html5(不是phonegap / cordova)这包括如何在logcat中显示控制台消息。 http://developer.android.com/guide/webapps/debugging.html#WebView

另一种方法是使用jsconsole.com。 http://jsconsole.com/remote-debugging.html

涵盖了远程调试

答案 2 :(得分:1)

我正在运行PhoneGap 2.9.1。

在做了一些搜索之后,我希望Console.log能够在Eclipse LogCat的标签' WebView '下面显示,所以我不确定它是工作

经过一番游戏后,我发现console.log()确实在LogCat的标签' CordovaLog '下显示。

答案 3 :(得分:1)

这个命令太好了

  

adb shell" logcat | grep' Web控制台'"

我找到了答案here

答案 4 :(得分:0)

如果您想在浏览器中测试您的cordova应用程序,就像测试任何其他网络应用程序一样。

您可以使用:cordova serve。这将在本地运行混合应用程序。您可以打开URL http://localhost:8000,并可以检查控制台日志的元素。您可以更改DOM元素CSS。