2011-02-01 111 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