开发者

Android: problem with debugging javascript in webview

I have some javascript running in WebView, and I want to receive console messages about errors in JS. In accordance with the instructions at http://develo开发者_开发百科per.android.com/guide/webapps/debugging.html I overrided methods

WebChromeClient.onConsoleMessage(String message, int lineNumber, String sourceID)

and

WebChromeClient.onConsoleMessage(ConsoleMessage cm),

redirecting messages to logcat. In android 2.1 it works well, but in android 2.2 none of this methods are called.

What I am doing wrong?

Thanks.


It seems that HTC disabled console.log on Android 2.2 devices. check out this post:

How to display console.log() output in PhoneGap app using Eclipse and HTC Desire HD?


I just tested on 2.2 (level 8). It's working fine. Not sure why you're not seeing it. I would validate the setting of ChromeClient.

js contains...

console.log("Hello World");
console.error("Serious");

ChromeClient contains

    @Override
public void onConsoleMessage(String message, int lineNumber, String sourceID) {
    // TODO Auto-generated method stub
    Log.v("ChromeClient", "invoked: onConsoleMessage() - " + sourceID + ":"
            + lineNumber + " - " + message);
    super.onConsoleMessage(message, lineNumber, sourceID);
}

@Override
public boolean onConsoleMessage(ConsoleMessage cm) {
    Log.v("ChromeClient", cm.message() + " -- From line "
            + cm.lineNumber() + " of "
            + cm.sourceId() );
    return true;
}

Log contains 03-16 15:53:12.309: VERBOSE/ChromeClient(595): Hello World -- From line 24 of file:///android_asset/base.js 03-16 15:53:12.309: VERBOSE/ChromeClient(595): Serious -- From line 25 of file:///android_asset/base.js

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜