2015-09-10 9 views
5

मैं onReceivedError का उपयोग कर कस्टम त्रुटि पृष्ठ के साथ उपयोग कर रहा हूं यह दिखाने के लिए कि इंटरनेट WebView में इंटरनेट उपलब्ध नहीं है। नीचे वह कोड है जिसका मैं उपयोग करता हूं। यह काम नहीं करता है। यह बस वेबपृष्ठ उपलब्ध नहीं है जब इंटरनेट उपलब्ध नहीं है।OnRecivedError कस्टम त्रुटि पृष्ठ नहीं दिखाता

I/chromium﹕ [INFO:CONSOLE(0)] "Not allowed to load local resource: file:///android_asset/webkit/android-weberror.png", source: data:text/html,chromewebdata (0) 

मेरी कोड

private class myWebViewBrowser extends WebViewClient { 
    /*@Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    }*/ 
    @Override 
    public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { 
     super.onReceivedError(view, request, error); 
     Log.e(String.valueOf(error.getErrorCode()), error.getDescription().toString()); 
     view.loadUrl("file:///android_asset/error.html"); 
    } 
} 
+0

मैंने वेबव्यू – Beloo

उत्तर

1

है यह उपयोगी हो सकता है:

वैसे भी logcat मुझे इस त्रुटि से पता चलता

https://groups.google.com/forum/#!topic/android-developers/4g6H0vr5_0E

निम्नलिखित कोड का प्रयास करें:

private class myWebViewBrowser extends WebViewClient { 

@Override 
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { 

    Log.e(String.valueOf(error.getErrorCode()), error.getDescription().toString()); 
    view.loadDataWithBaseURL("file:///android_asset/", html, "text/html","utf-8", null); 
    } 
} 
+0

पर खंड दिखाने के माध्यम से एक ही चीज़ बनाई है क्या आपको पता है कि मेरा कोड क्यों काम नहीं कर रहा है? मेरा मतलब है कि कभी-कभी यह काम करता है, इसलिए यह 'view.loadUrl की समस्या नहीं होगी। यह कुछ और होना है। – defiant

1
@Override 
    public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { 
     Log.e(String.valueOf(error.getErrorCode()), error.getDescription().toString()); 
     view.loadDataWithBaseURL("file:///android_asset/", html, "text/html","utf-8", null); 
     } 
3

आप बदल सकते हैं

view.loadUrl(...); 

view.loadDataWithBaseURL("file:///android_asset/", html, "text/html","utf-8", null); 

जहां

  • "file: /// android_asset /" करने के लिए अपने आधार यूआरएल लोड एचटीएमएल के लिए है

  • एचटीएमएल अपने html स्ट्रिंग है

  • "text/html" सामग्री के लिए माइम प्रकार है

  • "utf-8" एन्कोडिंग है शैली

  • और बातिल के रूप में पिछले यूआरएल, के लिए अपने इतिहास संदर्भ

संबंधित मुद्दे