简体   繁体   中英

I don't want to show my webviews url in Android apps when users wifi is off

MainActivity.java

package com.example.blackboy.allchannellive;
import android.annotation.TargetApi;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;


public class MainActivity extends AppCompatActivity {

    private WebView webView;

   // private AdView mAdView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        // for web view
        webView = (WebView) findViewById(R.id.webView);
        webView.setWebViewClient(new MyWebViewClient());

        String url = "http://shafayetice1.blogspot.com/";
        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadUrl(url);
        webView.setWebChromeClient(new WebChromeClient());


    }


    private class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            Log.i("WEB_VIEW_TEST", "error code:" + errorCode);
            super.onReceivedError(view, errorCode, description, failingUrl);

        }
    }


    @RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)
    @Override
    public void onPause() {
        super.onPause();
        webView.onPause();
    }




    @RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)
    @Override
    public void onResume() {
        super.onResume();
        webView.onResume();
    }

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



}

please help me.how can I do it if no internet just show internet is not available.please check your WiFi is on or off just this massage

when net is off just show now web page is not available

url is http://shafayetice1.blogspot.com ............. ## but I don't want to show it.

Add following permissions in manifest file

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
</uses-permission>

Then in your activity add following code

WifiManager wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
if (wifi.isWifiEnabled()){
//do you work , show your webviews url.
 }else{
 //  Show your error message. 
}

You want to check network connectivity status before you load the url in webview. this link will help you to implement that feature in you app.

http://www.androidhive.info/2012/07/android-detect-internet-connection-status/

First of all create two views in your activity_main.xml. 1. WebView (Initially visible) 2. No Internet Connection View with sad image or any thing else (Initially visibility gone).

Now before loading webview first of all check internet connection

if(internetConnection){
  setWebViewVisibility VISIBLE
 setNointernetConnectionView GONE
  loadWebView();
}else{
 setWebViewVisibility GONE
 setNointernetConnectionView VISIBLE
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM