43

我正在尝试在应用程序的 WebView 中运行 javascript。我正在开发 Nexus 7。

html / javascript 在 Chromium 上运行良好,但平板电脑上没有发生某些操作。有没有办法查看平板电脑上是否有任何 javascript 本身失败?一种控制台视图?

4

4 回答 4

45

您实际上可以从 WebView 接收控制台消息,这将允许您捕获它引发的错误。

为此:

  1. 在您的 WebView 上启用 JavaScript
  2. 设置WebChromeClient
  3. 覆盖onConsoleMessage

例子:

    final WebView webView = (WebView) findViewById(R.id.webview_terms_conditions);

    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);

    webView.setWebChromeClient(new WebChromeClient() {
        @Override
        public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
            Log.d("MyApplication", consoleMessage.message() + " -- From line "
                    + consoleMessage.lineNumber() + " of "
                    + consoleMessage.sourceId());
            return super.onConsoleMessage(consoleMessage);
        }
    });

    webView.loadUrl(getString(R.string.url_terms_conditions));

与此处所说的类似,尽管该文档不完整并且使用了已弃用的方法。


在 Android KitKat 上运行时,还可以启用远程调试!

于 2016-11-08T11:02:09.213 回答
28

您可以使用Remote Debugging WebViews

Chrome Devtools 远程调试

更多信息

使用 Chrome 开发者工具在您的原生 Android 应用程序中调试 WebView。

在 Android 4.4 (KitKat) 或更高版本上,使用 DevTools 调试原生 Android 应用程序中的 WebView 内容。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    WebView.setWebContentsDebuggingEnabled(true);
}

在电脑浏览器中输入 chrome://inspect 在此处输入图像描述

于 2018-09-24T04:56:49.203 回答
2

您也许可以使用Firebug lite。它只是一个书签,因此您可以在任何页面上打开它。

另外,请搜索还有很多其他类似的问题:

于 2013-02-13T18:03:07.917 回答
0

在 Android Studio“北极狐”中,只需查看 logcat。带有“cromium”标签的消息。

于 2021-12-02T12:33:47.190 回答