Android: Logcat is not working for JS console.log(

2019-02-17 10:14发布

问题:

My app is a combination of Android native, html5. Till last week I'm able to see the log messages from native code and javascript code running inside th WebView. But suddenly Logcat is not showing the console messages from javascript, though it is showing Log messages from my native code. Any ideas?

Thanks in advance. Venkat

回答1:

You can try adding a console message handler to your WebView by creating your custom WebChromeClient:

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;
    }
}

And then attach it:

someWebView.setWebChromeClient(new MyWebChromeClient());


回答2:

For just android native & html5 (not phonegap/cordova) this covers how to display console messages in logcat. http://developer.android.com/guide/webapps/debugging.html#WebView

An alternative is to use jsconsole.com. Remote debugging is covered at http://jsconsole.com/remote-debugging.html



回答3:

I am running PhoneGap 2.9.1.

After doing some searching I was expecting the Console.log to show in the Eclipse LogCat under the tag 'WebView', so I wasn't sure it was working.

After some playing around I found that console.log() does show in the LogCat under the tag 'CordovaLog'.



回答4:

This command works too nice

adb shell "logcat | grep 'Web Console'"

I found the answer here



回答5:

If you want to test your cordova App, within your browser, just like you test any other web app.

You can use: cordova serve . This will run the hybrid app locally. You can open the url http://localhost:8000, and can inspect element for console logs. You can change the DOM elements, CSS.