如何在Android应用中查看WebView中的Javascript错误?

int*_*tar 31 javascript android webview

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

html/javascript在Chromium上运行正常,但平板电脑上没有发生某些操作.有没有办法看到平板电脑上是否有任何javascript失败?一种控制台视图?

Rom*_*naV 34

您实际上可以从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));
Run Code Online (Sandbox Code Playgroud)

此处所述类似,尽管该文档不完整且使用了弃用方法.


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

  • 注意:我几乎没有注意到“WebChromeClient()”和“WebViewClient”之间的区别。因此,如果您没有看到“onConsoleMessage”,那是因为您使用了错误的客户端;-) (4认同)

Ahm*_*deh 9

您可以使用 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);
}
Run Code Online (Sandbox Code Playgroud)

在PC浏览器中输入chrome:// inspect 在此处输入图片说明

  • 哇,非常令人印象深刻和有用!! (2认同)

sac*_*een 2

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

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