onConsoleMessage 捕获的控制台消息不完整

console message captured by onConsoleMessage is incomplete

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

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

会起作用,但后面只会显示第一个参数

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

有什么解决办法吗?

一个有趣的错误!

您可以将 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.

将其插入您的页面