2013-01-25 45 views
5

मैंने इसी तरह के प्रश्न खोजे और पाया है, लेकिन वे ज्यादातर वेबव्यू सामग्री को बदलने के तरीके कहते हैं, वास्तव में इसे कैसे छिपाना नहीं है।वेबव्यू त्रुटि पृष्ठ को कैसे छिपाना है। क्या यह संभव है?

मेरा वेब व्यू प्रारंभ में एंड्रॉइड का उपयोग करके छिपा हुआ है: दृश्यता = "चला गया" main.xml में, मैं इसे myWebView.setVisibility (1) के साथ दृश्यमान रूप से दृश्यमान रूप से बदलता हूं; जब पृष्ठ पूरी तरह से लोड हो जाता है (और यह काम करता है)। अब, जब कोई त्रुटि पता चलती है तो मैं इस वेब दृश्य को छिपाना चाहता हूं। कारण मैं इसे छिपाना चाहता था क्योंकि मेरे पास लेआउट में एक अच्छी पृष्ठभूमि है जो त्रुटि के बारे में सूचित करती है। मुझे पता है कि ऐसा करने का यह सबसे अच्छा तरीका नहीं है, और शायद इसे बाद में बदल सकता है, लेकिन अब, मैं जो हल करना चाहता हूं वह यह है कि जब कोई त्रुटि होती है तो वेबव्यू मजाक नहीं कर रहा है (बस मज़ेदार, शायद)।

यह मैं क्या कोशिश की है है:

@Override 
public void onReceivedError (WebView view, int errorCode, 
          String description, String failingUrl) { 

     myWebView = (WebView) findViewById(R.id.webview); 
     // myWebView.setVisibility(0); // Doesn't work! 

     // if (errorCode == ERROR_TIMEOUT) { // Commented just for trying 

     try {view.stopLoading();} catch(Exception e){} 
     try {view.clearView();} catch(Exception e){} 

      view.loadUrl("file:///android_asset/error.html"); // This Works but I don't want it this way. 
      view.setBackgroundColor(0x00000000); // Trying to make it transparent. Doesn't work here 
      view.setVisibility(View.GONE); // Doesn't work. I have tried also with myWebView. 
      // } 
    } 

कोई भी विचार?

+0

कोई क्षमा याचना आवश्यक हो, तो यह एक अच्छा सवाल – QED

+0

आप के बजाय एक कस्टम पृष्ठ एक त्रुटि पृष्ठ प्रदर्शित कर सकते हैं। http://stackoverflow.com/questions/4101331/how-to-edit-or-create-custom-error-page-for-webview –

उत्तर

1

यह मेरा विचार है:

boolean isPageError = false; 

webView.setWebViewClient(new WebViewClient() { 
     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      isPageError = false; 
     } 

     @Override 
     public void onPageFinished(WebView view, String url) { 
      if (isPageError){ 
       webview.setVisibility(View.GONE); 
       txtError.setVisibility(View.VISIBLE); 
       txtError.setText("error message"); 
      } 
     } 

     @Override 
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
      isPageError = true; 
     } 
    });