web-dev-qa-db-ja.com

AndroidアプリのWebViewでJavaScriptエラーを確認するにはどうすればよいですか?

アプリのWebViewでJavaScriptを実行しようとしています。 Nexus 7で開発しています。

Html/javascriptはChromiumでは正常に動作しますが、タブレットで特定のアクションが実行されません。タブレットでJavaScript自体が失敗しているかどうかを確認する方法はありますか?一種のコンソールビュー?

32
interstar

実際に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));

here と同じですが、そのドキュメントは完全ではなく、非推奨のメソッドを使用しています。


Android KitKatで実行している場合は、リモートデバッグを 有効にすることもできます!

32
RominaV

Remote Debugging WebViewsを使用できます

Chrome Devtoolsリモートデバッグ

詳細

ネイティブでWebViewをデバッグするAndroidアプリを使用してChrome開発者ツール。

Android 4.4(KitKat)以降では、DevToolsを使用して、ネイティブAndroidアプリケーションのWebViewコンテンツをデバッグします。

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

PCブラウザーにchrome:// inspectと入力します enter image description here

7
Ahmad Aghazadeh

Firebug lite を使用できる場合があります。これは単なるブックマークレットなので、どのページでも開くことができます。

また、他にも多くの同様の質問があるので検索してください。

2
sachleen