我在WebView中运行了一些javascript,我希望收到有关JS中错误的控制台消息。 根据{{3}}的说明,我覆盖了方法
WebChromeClient.onConsoleMessage(String message, int lineNumber, String sourceID)
和
WebChromeClient.onConsoleMessage(ConsoleMessage cm)
,
将消息重定向到logcat。在Android 2.1中它运行良好,但在android 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行