2012-01-04 24 views
5

Tôi đang gặp phải một số hành vi javascript khác khi chạy trang web của mình trên Kindle Fire so với Chrome. Để gỡ lỗi, tôi cần quyền truy cập vào một thứ như Công cụ dành cho nhà phát triển Chrome hoặc Firebug. Bất kỳ đề xuất?Làm cách nào để gỡ lỗi trình duyệt trên Kindle Fire?

+0

FWIW, tôi hiện đang sử dụng Weinre khi tôi cần thực hiện việc này. jsconsole rất tuyệt, nhưng weinre cung cấp công cụ gỡ lỗi giống như thanh công cụ dành cho nhà phát triển Chrome. Đó là một chút phức tạp để thiết lập nhưng giá trị nó: http://people.apache.org/~pmuellr/weinre/docs/latest/ –

Trả lời

5

Trong cùng một thuyền ở đây ... đã hy vọng adb logcat sẽ giúp đỡ, nhưng thông báo điều khiển javascript dường như không xuất hiện ở đó. Có lẽ có một cái gì đó mà cần phải được thiết lập trên thiết bị để trực tiếp giao diện điều khiển các bản ghi để logcat?

chỉnh sửa: tìm thấy giải pháp tốt: http://jsconsole.com - cho phép bạn thiết lập bảng điều khiển gỡ lỗi/ghi nhật ký từ xa. Khá đơn giản (chỉ ghi nhật ký bàn điều khiển, vì vậy bạn sẽ cần phải đổ nhiều vào nhật ký) ... nhưng nó hoạt động tốt. Giúp tôi theo dõi nguồn gốc của các vấn đề của tôi, ít nhất!

how-to: http://jsconsole.com/remote-debugging.html

+0

: O jsconsole.com đã được tất cả cuộc sống của tôi ở đâu? Thật hữu ích. Cảm ơn! – Meekohi

+0

Điều này thật tuyệt vời. – mckamey

0

Tôi mất một cách tiếp cận khác nhau và tạo ra một ứng dụng bản địa wrapper mà bật lên một hộp thoại cho JavaScript.

Mã trình bao bọc của tôi khá lớn, vì vậy tôi đã lấy một đoạn các phần liên quan. Nó thực sự hoạt động và sẽ hiển thị bất kỳ lỗi javascript nào.

// 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; 
     } 
    } 

Để biên dịch điều này, bạn cần phải cài đặt Android SDK trên máy tính và có thể là Java IDE (Eclipse) với ADT. Sau đó, bạn chỉ cần làm: tạo dự án mới, thêm một thành phần WebView vào layout/main.xml của bạn và dán mã. Biên dịch và cài đặt trên Kindle Fire của bạn.

Các vấn đề liên quan