2012-01-04 14 views
5

Kindle Fireで自分のサイトをChromeで実行しているときとは異なるjavascriptの動作が発生しています。これをデバッグするには、ChromeデベロッパーツールやFirebugのようなものにアクセスする必要があります。助言がありますか?Kindleの火災でシルクブラウザをデバッグする方法は?

+0

FWIW、私はこれを行う必要があるときにWeinreを使用します。 jsconsoleは素晴らしいですが、weinreはchromeの開発ツールバーと同じデバッグツールを提供しています。セットアップにはちょっと複雑ですが、その価値はあります:http://people.apache.org/~pmuellr/weinre/docs/latest/ –

答えて

5

ここで同じボートで... adb logcatが助けてくれることを期待していましたが、javascriptのコンソールメッセージは表示されません。おそらくコンソールにログを記録するためにデバイスに設定する必要のあるものがありますか?

編集:適切な解決策を見つけました:http://jsconsole.com - リモートデバッグ/ロギングコンソールを設定できます。かなりシンプルな(コンソールロギングのみなので、ログにたくさんのデータをダンプする必要があります)...しかし、うまくいきます。少なくとも私の問題の原因を突き止める手伝いをしました!私は別のアプローチを取り、JavaScriptのためのダイアログをポップアップラッパーのネイティブアプリを作成しhttp://jsconsole.com/remote-debugging.html

+0

:O jsconsole.comはどこにいましたか?とても役に立ちました。ありがとう! – Meekohi

+0

これは優れています。 – mckamey

0

:ハウツー

ラッパーコードがかなり大きいので、関連部分のスニペットを取りました。それは実際に動作し、任意の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をインストールする必要があります、そしておそらくJavaのIDE(Eclipseの?)ADTと。次に、新しいプロジェクトを作成し、レイアウト/ main.xmlにWebViewコンポーネントを追加し、コードを貼り付けます。コンパイルし、あなたのKindleの火災にインストールします。

関連する問題