i want to hide the url in webview (when there is no internet ) and display my own text

Issue

[!Screenshot[1]

I want to display my own text when there is no internet connection to hide the url of the webpage from user. check the screenshot from that link .i just want to hide that link is it possible

Solution

java file this will check for internet when app is start running

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;

public class isNetworkAvailable extends Activity {
    private ImageButton btn;
private Handler h  new Handler();
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_is_network);
            btn  (ImageButton) findViewById(R.id.bu);
   btn.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
                     restar();
       }
   });
                    if (!isNetworkAvailable()) {
                        //Create an alert dialog


                        AlertDialog.Builder Checkbuilder  new AlertDialog.Builder(isNetworkAvailable.this);
                        Checkbuilder.setIcon(R.drawable.error);
                        Checkbuilder.setTitle("Error!");
                        Checkbuilder.setMessage("Check Your Internet Connection.");
                        //Builder Retry Button

                        Checkbuilder.setPositiveButton("Retry", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int id) {
                                //Restart The Activity
                                Intent intent  getIntent();
                                finish();
                                startActivity(intent);

                            }
                        });


                Checkbuilder.setNegativeButton("Exit", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        finish();
                    }
                });

                AlertDialog alert  Checkbuilder.create();
                alert.show();

            } else {
                if (isNetworkAvailable()) {

                    Thread tr  new Thread() {
                        public void run() {
                            try {
                                sleep(4);
                            } catch (Exception e) {
                                e.printStackTrace();
                            } finally {
                                Intent i  new Intent(isNetworkAvailable.this, MainActivity.class);
                                startActivity(i);

                                finish();
                            }
                        }
                    };
                    tr.start();

                }
            }

        }


        private boolean isNetworkAvailable() {
            ConnectivityManager connectivityManager  (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo activeNetworkInfo  connectivityManager.getActiveNetworkInfo();
            return activeNetworkInfo ! null;

        }

public  void restar(){

            Intent intenet new Intent(this,isNetworkAvailable.class);

                    startActivity(intenet);
                    finish();
        }
    }

layout file for above java code

<?xml version"1.0" encoding"utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"
    xmlns:app"http://schemas.android.com/apk/res-auto"
    xmlns:tools"http://schemas.android.com/tools"
    android:layout_width"match_parent"
    android:layout_height"match_parent"
    android:background"@android:color/white"
    tools:context".isNetworkAvailable">


    <ImageView
        android:id"@+id/imageView2"
        android:layout_width"389dp"
        android:layout_height"439dp"
        android:contentDescription"no internet check your connection"
        android:src"@raw/no"
        app:layout_constraintEnd_toEndOf"parent"
        app:layout_constraintHorizontal_bias"0.4"
        app:layout_constraintStart_toStartOf"parent"
        app:layout_constraintTop_toTopOf"parent" />

    <ImageButton
        android:id"@+id/bu"
        android:layout_width"335dp"
        android:layout_height"80dp"
        android:layout_below"@id/imageView2"
        android:layout_marginTop"32dp"
        android:contentDescription"Tap to retry"

        android:src"@raw/r"
        app:layout_constraintEnd_toEndOf"parent"
        app:layout_constraintStart_toStartOf"parent"
        app:layout_constraintTop_toBottomOf"@+id/imageView2" />
</android.support.constraint.ConstraintLayout>

and just add this line of code in fragment with webview(this will check for internet when webview start loading

 mWebView.setWebViewClient(new WebViewClient() {
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {

                mWebView.loadUrl("file:///android_asset/error.html");

and your android mainfest should be like this

<application
        android:icon"@mipmap/ic_app"
        android:label"@string/app_name"
        android:roundIcon"@mipmap/ic_app_round"
        android:supportsRtl"true"
        android:configChanges"keyboardHidden|orientation|screenSize"
        android:theme"@style/Theme.AppCompat.NoActionBar">
        <activity
            android:name".isNetworkAvailable"
            android:label"@string/app_name"
            android:theme"@style/Theme.AppCompat.Light.NoActionBar.FullScreen">


            <intent-filter>
                <action android:name"android.net.wifi.WIFI_STATE_CHANGED" />
                <action android:name"android.net.conn.CONNECTIVITY_CHANGE" />
                <action android:name"android.intent.action.MAIN" />
            </intent-filter>

        </activity>

place this file under assets with name error.html

<!doctype html>
<html lang"en">
<head>
    <meta charset"utf-8">
    <meta name"apple-mobile-web-app-capable" content"yes">
    <meta name"mobile-web-app-capable" content"yes">
    <title>No Connection</title>

    <!-- Stylesheets-->
    <style type"text/css">
 body{
  background: #E1e1e1;
}

#cloud{
  width: 300px;
  height: 120px;
  background: #676767;

  background: -webkit-linear-gradient(-90deg,#676767 5%, #676767 100%);

  -webkit-border-radius: 100px;
  -moz-border-radius: 100px;
  border-radius: 100px;

  position: relative;

  margin: 150px auto 0;
  opacity: .5;
}

#cloud:before, #cloud:after{
  content: '';
  position:absolute;
  background: #676767;
  z-index: -1;
}

#cloud:after{
  width: 100px;
  height: 100px;
  top: -50px;
  left:50px;

  -webkit-border-radius: 100px;
  -moz-border-radius: 100px;
  border-radius: 100px;
}

#cloud:before{
  width: 120px;
  height: 120px;
  top: -70px;
  right: 50px;

  -webkit-border-radius: 200px;
  -moz-border-radius: 200px;
  border-radius: 200px;
}

.shadow {
  width: 300px;
  position: absolute;
  bottom: -10px;
  background: black;
  z-index: -1;

  -webkit-box-shadow: 0 0 25px 8px rgba(0,0,0,0.4);
  -moz-box-shadow: 0 0 25px 8px rgba(0,0,0,0.4);
  box-shadow: 0 0 25px 8px rgba(0,0,0,0.4);

  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  border-radius: 50%;

}
h1{
  color: #fff;
  font-size: 25px;
  padding-top: 1px;
  text-align: center ;
  margin: 2px auto;
}

h2 {
  color: #fff;
  font-size: 17px;
  padding-top: 15px;
  text-align: center;
  margin: 5px auto;
}

h4 {
  color: #fff;
  font-size: 14px;
  margin: 0 auto;
  padding: 0;
  text-align: center;
}

 </style>

<body>
<div id"cloud"><h1>Whoops!</h1>
    <h2>Slow or No internet Connection :(</h2>
    <h4>Please Check your WiFi or Mobile Internet!</h4>
    <span class"shadow"></span></div>

</body>
</html>

you need to input all the above code to make it work fine . hope this will help you

Answered By – anshul raj

Leave a Comment