2011-02-01 95 views
22

我有一些JavaScript在WebView中运行,并且我想接收有关JS中错误的控制台消息。 根据指令在http://developer.android.com/guide/webapps/debugging.html我overrided方法Android:在webview中调试javascript的问题

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

WebChromeClient.onConsoleMessage(ConsoleMessage cm)

重定向消息logcat的。在android 2.1中它运行良好,但在android 2.2中没有任何这种方法被调用。

我做错了什么?

谢谢。

+0

体验对股票的HTC Desire HD/Android 2.2的同样的问题。 – tacone 2011-03-27 16:17:07

+0

我有HTC Legend。这似乎是特定于HTC的问题,因为在仿真器上一切正常。 – 2011-03-28 08:38:55

回答

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):你好世界 - 从线24 of file:///android_asset/base.js 03-16 15:53:12.309:VERBOSE/ChromeClient(595):严重 - 来自文件的第25行:///android_asset/base.js