学而实习之 不亦乐乎

Android 获取 WebView 加载的 html 中 console.log 输出

2024-03-22 23:11:29

使用WebView加载html显示时,在js代码中通过console.log()输出的日志内容,如何在 AndroidStudio 中获取到呢?

在上面的方式下可以直接捕获到js中console.log()输出的内容。要知道在 PC 的浏览器的调试模式下是可以看到的,这是因为设置为ChromeClient并且开启了js支持,如果不设置和开启的话是没法捕获console.log的输出内容的。

实现

1、使用常规的webview加载显示html时,直接在js中console.log是不输出的。

//获取webview
webView = findViewById(R.id.webview);
webView.loadUrl("URL");

2、设置为ChromeClient并且开启js支持

//设置为ChromeClinet 才能执行js代码
WebChromeClient webChromeClient = new WebChromeClient();
webView.setWebChromeClient(webChromeClient);

//设置开启js支持
webView.getSettings().setJavaScriptEnabled(true);

3、添加以上代码之后在logcat中就可以捕获到console.log的日志输出了

4、如果还是不行,可以考虑将console.log替换为在js中调用安卓的方法,在 Android 方法中进行输出