javascript - Hur man felsöker Silk-webbläsaren på Kindle Fire?
Jag upplever lite annorlunda JavaScript-beteende när jag kör min webbplats på Kindle Fire än genom Chrome. För att kunna felsöka detta behöver jag tillgång till något som Chrome Developer Tool eller Firebug. Några förslag?
Svar #1
Sitter i samma båt här... hoppades att adb logcat skulle hjälpa, men JavaScript-konsolmeddelanden verkar inte dyka upp där. Kanske finns det något som behöver ställas in på enheten för att riktar konsolloggar till logcat?
redigera: hittade en bra lösning: http://jsconsole.com -- låter dig ställa in en fjärrdebugg-/loggningskonsol. Ganska enkelt (endast konsolloggning, så du måste dumpa mycket information i loggarna)... men det fungerar bra. Hjälpte mig spåra källan till mina problem, åtminstone!
hur-man: http://jsconsole.com/remote-debugging.html
Svar #2
Jag tog ett annat tillvägagångssätt och skapade en inbyggd app-wrapper som öppnar en dialogruta för JavaScript.
Min wrapper-kod är ganska stor, så jag tog en del av de relevanta delarna. Den fungerar faktiskt och kommer att visa VILKEN som helst JavaScript-fel.
// 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;
}
}
För att kompilera detta måste du installera Android SDK på din dator, och förmodligen en Java IDE (Eclipse?) med ADT. Sedan gör du bara: skapa ett nytt projekt, lägg till en WebView-komponent i din layout/main.xml, och klistra in koden. Kompilera och installera på din Kindle Fire.
