Kindle Fireでサイトを実行すると、Chromeとは異なるJavaScriptの動作が発生します。これをデバッグするには、ChromeDeveloperToolやFirebugなどにアクセスする必要があります。助言がありますか?
2 に答える
ここの同じボートで...adblogcatが役立つことを望んでいましたが、javascriptコンソールメッセージがそこに表示されないようです。おそらく、コンソールログをlogcatに転送するために、デバイスに設定する必要があるものがありますか?
編集:まともな解決策を見つけました:http://jsconsole.com-リモートデバッグ/ロギングコンソールを設定できます。非常に単純です(コンソールログのみなので、ログに多くをダンプする必要があります)...しかし、それはうまく機能します。少なくとも、問題の原因を突き止めるのに役立ちました。
ハウツー: http: //jsconsole.com/remote-debugging.html
別のアプローチを取り、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にコンパイルしてインストールします。