2011-10-19 28 views
10

Khi tôi tải một url qua WebView, đôi khi tôi nhận được một lũ vô số các thông điệp như thế này:LỖI/Web Console: của router Lỗi: Quá nhiều thời gian dành cho xử lý dỡ bỏ

10-19 19:18:38.056: ERROR/Web Console(6524): 
Uncaught Error: Too much time spent in unload handler. at v8/DateExtension:1 

lỗi này có nghĩa gì?

+0

bạn đã giải quyết vấn đề này nếu có thì vui lòng cung cấp cho tôi giải pháp –

Trả lời

4

Điều này dường như được xác định trong DateExtension.cpp, trong webkit. Đó là một ngoại lệ C++ được ném nếu một móc JS (được chèn vào Date.getTime, nếu enableSleepDetection (true) được đặt) được gọi là hơn 1000 lần.

Bạn có thể muốn tìm nạp mã nguồn Android để xem xét thêm. Không có tài liệu nào trên tệp.

0

Tôi gặp lỗi tương tự. Sau khi một số điều tra tôi đã giải quyết vấn đề này. Có thể mã này sẽ giúp bạn:

 { 
      webView = (WebView) view.findViewById(R.id.transcationwebview); 
       progressdialog = ProgressDialog.show(mContext, "", 
         mContext.getString(R.string.please_wait)); 
       progressdialog.setCancelable(true); 
       progressdialog.setOnCancelListener(new OnCancelListener() { 

        @Override 
        public void onCancel(DialogInterface dialog) { 
         webView.stopLoading(); 
         // webView.clearView(); 

        } 
       }); 



       webView.setWebChromeClient(new MyChromeClient()); 
       webView.getSettings().setBuiltInZoomControls(true); 
       webView.getSettings().setLayoutAlgorithm(
         WebSettings.LayoutAlgorithm.NARROW_COLUMNS); 
       webView.getSettings().setUseWideViewPort(true); 
       webView.getSettings().setLoadWithOverviewMode(true); 
       webView.setWebViewClient(new WebViewClient() { 
        @Override 
        public boolean shouldOverrideUrlLoading(WebView view, String url) { 
         // TODO Auto-generated method stub 
         // view.loadUrl(url); 
         return false; 
        } 

        @Override 
        public void onPageFinished(WebView view, String url) { 
         // TODO Auto-generated method stub 
         super.onPageFinished(view, url); 
         if (progressdialog != null && progressdialog.isShowing()) { 
          progressdialog.dismiss(); 
         } 

        } 

        @Override 
        public void onPageStarted(WebView view, String url, Bitmap favicon) { 
         // TODO Auto-generated method stub 
         super.onPageStarted(view, url, favicon); 
        } 

        @Override 
        public void onReceivedError(WebView view, int errorCode, 
          String description, String failingUrl) { 
         // TODO Auto-generated method stub 



        } 
       }); 
       webView.getSettings().setLoadWithOverviewMode(true); 
       webView.getSettings().setPluginState(PluginState.ON); 
       webView.getSettings().setBuiltInZoomControls(true); 
       webView.getSettings().setPluginsEnabled(true); 
       webView.setKeepScreenOn(true); 
       webView.getSettings().setDomStorageEnabled(true); 
       webView.getSettings().setAppCacheEnabled(true); 
       webView.getSettings().setJavaScriptEnabled(true); 
       webView.loadUrl(url); 
} 
    public class MyChromeClient extends WebChromeClient { 
      @Override 
      public void onProgressChanged(WebView view, int newProgress) { 
       try { 

        if (progressdialog.isShowing()) { 
         progressdialog.setMessage(getString(R.string.loading) 
           + newProgress + " %"); 

        } else { 
         /* 
         * webView.stopLoading(); webView.clearView(); 
         */ 
        } 
       } catch (Throwable e) { 

        e.printStackTrace(); 
       } 
      } 
Các vấn đề liên quan