3

我已经WebView加载了一个网页,我已经设置了自定义WebChromeClient来捕获控制台日志,但我发现它与浏览器中的控制台相比是不完整的。返回的消息cm.message()不包含传递给控制台方法的所有值。

console.log("Test");//Test

将工作,但以下只会显示第一个参数

console.log("test", 1);//test - expected test 1

有没有办法解决它?

4

1 回答 1

3

一个有趣的错误!

您可以包装console.log自己的函数,将所有参数连接成一个字符串。执行此操作的 JavaScript 代码如下:

(function() { 
    var oldLog = console.log;
    console.log = function() { 
        oldLog.call(console, Array.prototype.slice.call(arguments).join(" "));
    }
})();

WebView.loadUrl('javascript:...')您可以使用, 或将其注入到您的页面中WebView.evaluateJavascript

于 2015-04-24T12:39:51.610 回答