6

Kindle Fireでサイトを実行すると、Chromeとは異なるJavaScriptの動作が発生します。これをデバッグするには、ChromeDeveloperToolやFirebugなどにアクセスする必要があります。助言がありますか?

4

2 に答える 2

6

ここの同じボートで...adblogcatが役立つことを望んでいましたが、javascriptコンソールメッセージがそこに表示されないようです。おそらく、コンソールログをlogcatに転送するために、デバイスに設定する必要があるものがありますか?

編集:まともな解決策を見つけました:http://jsconsole.com-リモートデバッグ/ロギングコンソールを設定できます。非常に単純です(コンソールログのみなので、ログに多くをダンプする必要があります)...しかし、それはうまく機能します。少なくとも、問題の原因を突き止めるのに役立ちました。

ハウツー: http: //jsconsole.com/remote-debugging.html

于 2012-01-11T19:23:51.470 に答える
0

別のアプローチを取り、JavaScriptのダイアログをポップアップするラッパーネイティブアプリを作成しました。

私のラッパーコードはかなり大きいので、関連する部分のスニペットを取りました。それは実際に機能し、JavaScriptエラーを表示します。

// registers the debugger to catch errors 
WebView engine = (WebView) findViewById(R.id.web_engine);
engine.setWebChromeClient(new DebugClient(this));

// the class that manages the errors
private class DebugClient extends WebChromeClient {
        Activity activity;

        public DebugClient(Activity activity) {
            this.activity = activity;
        }

        @Override
        public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
            if (consoleMessage.messageLevel() == MessageLevel.ERROR
                    || consoleMessage.messageLevel() == MessageLevel.WARNING) {
                String title="Javascript error on line "
                        + String.valueOf(consoleMessage.lineNumber())
                        + " of " + consoleMessage.sourceId();
                AlertBox alertBox=new AlertBox(activity, (ActionListener)null, title, consoleMessage.message(), "OK");
                alertBox.show();
                alertBoxes.add(alertBox);
            }
            return true;
        }
    }

これをコンパイルするには、Android SDKをコンピューターにインストールする必要があります。おそらく、ADTを備えたJava IDE(Eclipse?)をインストールする必要があります。次に、次の手順を実行します。新しいプロジェクトを作成し、WebViewコンポーネントをlayout / main.xmlに追加して、コードを貼り付けます。KindleFireにコンパイルしてインストールします。

于 2012-02-17T20:25:35.267 に答える