Chrome을 통해 Kindle Fire에서 내 사이트를 실행할 때 자바 스크립트 동작이 약간 달라집니다. 이를 디버깅하려면 Chrome 개발자 도구 또는 방화범과 같은 기능에 액세스해야합니다. 어떤 제안?빛나다 화재에 실크 브라우저를 디버깅하는 방법?
5
A
답변
5
여기 같은 보트에서 ... adb logcat이 도움이되기를 바랬지 만 자바 스크립트 콘솔 메시지가 나타나지 않는 것 같습니다. 콘솔 로그를 logcat으로 보내려면 장치에 설정해야 할 필요가 있을까요?
편집 : 알맞은 해결책을 찾았습니다 : http://jsconsole.com - 원격 디버그/로깅 콘솔을 설정할 수 있습니다. 꽤 간단합니다 (콘솔 로깅 만하므로 로그를 많이 덤프해야합니다).하지만 잘 작동합니다. 적어도 내 문제의 출처를 추적 할 수있게 도와 줬습니다!
방법 - 투 :
0
http://jsconsole.com/remote-debugging.html 나는 다른 접근 방식을 가지고 가고 자바 스크립트에 대한 대화 상자가 나타 래퍼 네이티브 응용 프로그램을 만들었습니다.
래퍼 코드가 다소 크기 때문에 relavant 부분에 대한 스 니펫을 만들었습니다. 그것은 실제로 작동하고 어떤 자바 스크립트 오류를 표시합니다.
// 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?)를 설치해야합니다. 그런 다음 새 프로젝트를 만들고 layout/main.xml에 WebView 구성 요소를 추가 한 다음 코드를 붙여 넣기 만하면됩니다. 컴파일하고 Kindle Fire에 설치하십시오.
FWIW, 이제 이것을 수행해야 할 때 Weinre를 사용합니다. jsconsole은 훌륭하지만 weinre는 크롬 개발자 도구 모음과 동일한 디버그 도구를 제공합니다. 설치하기는 다소 복잡하지만 그만한 가치가 있습니다. http://people.apache.org/~pmuellr/weinre/docs/latest/ –