How to set Image on error in WebView Activity in android or How to convert my website to android application or How to create web view in android or how to solve can go back problem in webview in android

webview

  1.                            How to set Image on error in WebView  Activity in android 
  2.                            How to convert my website to android application
  3.                            How to create web view in android by android studio  
  4.                           how to solve can go back problem in webview in android
  5.                          





  1. Hello user we use web view in android and implement this function in our project
  2.        If we get this type error when net connection  off in device than error handler print a                  massage

         

                            The Web page at  
                    http://www.google.com.sg could not be loaded as:
                          net::ERR_CACHE_MISS could not be loaded as:
                           net::ERR_CACHE_MISS


  1. 2  How to change screen and how to show image in background web page error time in web view
  2. look first error screen    follow my code

  


  1. My activity_main.xml    code for web view complete solution
  2. put this code in your activity_main layout file and care fully  change resource  id 
  3. now go to the MainActivity.java file


<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <WebView
        android:id="@+id/webviewMain"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <LinearLayout
        android:id="@+id/lLayoutRequestError"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"
        android:background="#fff"
        android:gravity="center"
        android:orientation="vertical"
        android:visibility="gone" >


        <ImageButton
            android:id="@+id/btnRetry"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:minWidth="120dp"
            android:background="@drawable/image"
            android:textSize="20dp"
            android:textStyle="bold" />

    </LinearLayout>
</RelativeLayout>



  MainActivity.java 


  1. Now we put the code in MainActivity.java
  2. Implement this code for webview for convert  your website to android  application.
  3.  In this code also working with can go back method so your webview application
    working with back action when your screen forwarded 

    Now see the Webview  MainActivity.java source code



    My MainActivity.java file

import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageButton;
import android.widget.LinearLayout;
public class MainActivity extends ActionBarActivity implements View.OnClickListener {
    private final String TAG = MainActivity.class.getSimpleName();
    private WebView mWebView = null;
    private final String URL = "http://www.google.com";
    private LinearLayout mlLayoutRequestError = null;
    private Handler mhErrorLayoutHide = null;
    private boolean mbErrorOccured = false;
    private boolean mbReloadPressed = false;
    @SuppressLint("SetJavaScriptEnabled")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ((ImageButton) findViewById(R.id.btnRetry)).setOnClickListener(this);
        mlLayoutRequestError = (LinearLayout) findViewById(R.id.lLayoutRequestError);
        mhErrorLayoutHide = getErrorLayoutHideHandler();
        mWebView = (WebView) findViewById(R.id.webviewMain);
        mWebView.setWebViewClient(new MyWebViewClient());
        WebSettings settings = mWebView.getSettings();
        settings.setJavaScriptEnabled(true);
        mWebView.setWebChromeClient(getChromeClient());
        mWebView.loadUrl(URL);
    }
    @Override
    public boolean onSupportNavigateUp() {
        return super.onSupportNavigateUp();
    }
    @Override
    public void onClick(View v) {
        int id = v.getId();
        if (id == R.id.btnRetry) {
            if (!mbErrorOccured) {
                return;
            }
            mbReloadPressed = true;
            mWebView.reload();
            mbErrorOccured = false;
        }
    }
    @Override
    public void onBackPressed() {
        if (mWebView.canGoBack()) {
            mWebView.goBack();
            return;
        }
        else {
            finish();
        }
        super.onBackPressed();
    }
    class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            return super.shouldOverrideUrlLoading(view, url);
        }
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }
        @Override
        public void onLoadResource(WebView view, String url) {
            super.onLoadResource(view, url);
        }
        @Override
        public void onPageFinished(WebView view, String url) {
            if (mbErrorOccured == false && mbReloadPressed) {
                hideErrorLayout();
                mbReloadPressed = false;
            }
            super.onPageFinished(view, url);
        }
        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            mbErrorOccured = true;
            showErrorLayout();
            super.onReceivedError(view, errorCode, description, failingUrl);
        }
    }
    private WebChromeClient getChromeClient() {
        final ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
        progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        progressDialog.setCancelable(false);
        return new WebChromeClient() {
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                super.onProgressChanged(view, newProgress);
            }
        };
    }
    private void showErrorLayout() {
        mlLayoutRequestError.setVisibility(View.VISIBLE);
    }
    private void hideErrorLayout() {
        mhErrorLayoutHide.sendEmptyMessageDelayed(10000, 200);
    }
    private Handler getErrorLayoutHideHandler() {
        return new Handler() {
            @Override
            public void handleMessage(Message msg) {
                mlLayoutRequestError.setVisibility(View.GONE);
                super.handleMessage(msg);
            }
        };
    }


}






  1.  In this java file you can manage implantation from  your side
  2. Code for webview load page..........
 mWebView = (WebView) findViewById(R.id.webviewMain);                             mWebView.setWebViewClient(new MyWebViewClient());                                WebSettings settings = mWebView.getSettings();                                 settings.setJavaScriptEnabled(true);                                mWebView.setWebChromeClient(getChromeClient());                                      mWebView.loadUrl(URL);




            3. Now next 
                                      this method for set image background when your webview application internet                                    connection is off or not connected to net
             @Override
                public void onClick(View v) {
                    int id = v.getId();

                    if (id == R.id.btnRetry) {
                        if (!mbErrorOccured) {
                            return;
                        }

                        mbReloadPressed = true;
                        mWebView.reload();
                        mbErrorOccured = false;
                    }
                }

            4. In this method when our webview android  application action for back foreword screen on click back button 

            see this method and also implement in your web view application 



            @Override
                public void onBackPressed() {
                    if (mWebView.canGoBack()) {
                        mWebView.goBack();
                        return;
                    }
                    else {
                        finish();
                    }
                    super.onBackPressed();
                }


            5.             Print image in your android webview application in background when your network                              connection out of service and mobile device net connection is off   
                            set this method to your java file 


             private void showErrorLayout() {
                    mlLayoutRequestError.setVisibility(View.VISIBLE);
                }
                private void hideErrorLayout() {
                    mhErrorLayoutHide.sendEmptyMessageDelayed(10000, 200);
                }
                private Handler getErrorLayoutHideHandler() {
                    return new Handler() {
                        @Override
                        public void handleMessage(Message msg) {
                            mlLayoutRequestError.setVisibility(View.GONE);
                            super.handleMessage(msg);
                        }
                    };


            6.  Now run your application and see your application 

                                  Web page not available
                                The Web page at http://www.google.com.sg could not be loaded as:
                                 net::ERR_CACHE_MISS


                                           This screen change into your back ground image 
                                               like this screenshot  







                                                                             Thanks for
                                                                                  visit  


                           Please like and share this answer and give suggestion and post your question and answer  

            Comments

            1. its really awesome and more workifull thnku for this tutorial

              ReplyDelete
            2. This is a wonderful article, Given so much info in it, These type of articles keeps the users interest in the website, and keep on sharing more ... good luck. how to change your minecraft username

              ReplyDelete

            Post a Comment

            Popular posts from this blog