Issue
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