在模拟WebView应用程序时获取Javascript控制台

Tot*_*Inc 11 android webview

我是Android Dev的新手,我正在尝试创建一个基于WebView的应用程序.我得到了基础知识,我直接在手机上模拟应用程序,并想知道是否有办法Javascript console在Chrome PC版本中获得类似内容.

我的设备运行的是Android 4.2.1 API Level 17.我无法在我的计算机上模拟应用程序,但它不起作用.

我已经在Stackoverflow上看了这个话题,但没有帮助我.

那么,我尝试过的(来自Stackoverflow主题的示例):

  • 从我的设备到我的计算机的远程调试:我不能使我的设备运行Android 4.2.1并且至少需要Android 4.4+.

  • JavaScript控制台:我无法访问并且没有在我的WebView应用程序中实现浏览器栏(并且不想实现一个......)

  • 原来的答案:我把一些console.log('test')console.error('test')上一个window.onload function,看看我能找到它们的logcatADB logs,但我无法找到他们,即使我把adb logcat对其进行搜索.

有人能帮我吗?我真的不知道如何获得一个控制台,真的需要它......

谢谢!

Mik*_*nov 26

您所指的答案适用于Android Browser应用程序,而不适用于WebView组件.

为了从console.log()函数族中获取输出,您需要WebChromeClient为WebView和override onConsoleMessage() (doc)方法设置一个,如下所示:

webView.setWebChromeClient(new WebChromeClient() {
    @Override
    public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
        android.util.Log.d("WebView", consoleMessage.message());
        return true;
    }
});
Run Code Online (Sandbox Code Playgroud)

  • @mikhail-naganov:你知道如何打印数组“[]”吗?目前我得到 `[object Object],[object Object],...` (2认同)
  • 现在已弃用 (2认同)