Android:在webview中调试javascript的问题

时间:2011-02-01 07:34:10

标签: android android-webview

我在WebView中运行了一些javascript,我希望收到有关JS中错误的控制台消息。 根据{{​​3}}的说明,我覆盖了方法

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

WebChromeClient.onConsoleMessage(ConsoleMessage cm)

将消息重定向到logcat。在Android 2.1中它运行良好,但在android 2.2中,没有一种方法被调用。

我做错了什么?

感谢。

2 个答案:

答案 0 :(得分:7)

似乎HTC在Android 2.2设备上禁用了console.log。看看这篇文章:

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

答案 1 :(得分:6)

我刚刚在2.2(8级)上测试过。它工作正常。不知道为什么你没有看到它。我会验证ChromeClient的设置。

js包含......

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

ChromeClient包含

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

日志包含 03-16 15:53:12.309:VERBOSE / ChromeClient(595):Hello World - 来自file:///android_asset/base.js的第24行 03-16 15:53:12.309:VERBOSE / ChromeClient(595):严重 - 来自file:///android_asset/base.js的第25行