我已经WebView
加载了一个网页,我已经设置了自定义WebChromeClient
来捕获控制台日志,但我发现它与浏览器中的控制台相比是不完整的。返回的消息cm.message()
不包含传递给控制台方法的所有值。
console.log("Test");//Test
将工作,但以下只会显示第一个参数
console.log("test", 1);//test - expected test 1
有没有办法解决它?
我已经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
。