Customize error message when not uploading webview for not having internet in Fragment

0

I have an application that uses a webview , now what I try is that when you do not have Internet the classic error screen that contains the link does not come out, I want to use a personalized message.

I have some code, it does not mark me errors but when wanting to start the app it closes automatically.

package mx.com.coraltours.coraltoursv1;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.webkit.WebViewClient;




public class ProximosViajesFragment extends Fragment {

    private static ConnectivityManager manager;


    public static boolean isOnline(Context context) {
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
        return networkInfo != null && networkInfo.isAvailable() && networkInfo.isConnected();
    }

        public ProximosViajesFragment() {
            // Required empty public constructor
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            View v = inflater.inflate(R.layout.fragment_personalizados, container, false);

            String url="http://www.google.com/";
            WebView view=(WebView) v.findViewById(R.id. WebViw);
            view.getSettings().setJavaScriptEnabled(true);
            view.setWebViewClient(new WebViewClient());// Agregamos un WebViewCliente, esto permite que se sigan ejecutando los links dentro de este WebView
            //view.loadUrl(url);

            /****************************************/
            if (isOnline(getActivity())) {
                url = "http://www.google.com/";
                view.loadUrl(url);
            } else {
                view.loadUrl("file:///android_asset/html/pagina_error.html");
            }
            /****************************************/


            return v;
        }



}
    
asked by Lluvia Coello 31.05.2018 в 03:47
source

1 answer

0

Update, I already get an error message in HTML when it has no connection, with the following code:

package mx.com.coraltours.coraltoursv1;

import android.content.Context; import android.graphics.Bitmap; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.WebView; import android.webkit.WebViewClient; import android.webkit.WebSettings; import android.widget.ProgressBar;

public class UpFragmentTravels extends Fragment {

    public ProximosViajesFragment() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View v = inflater.inflate(R.layout.fragment_proximosviajes, container, false);


        WebView view=(WebView) v.findViewById(R.id.WebViw);
        view.getSettings().setJavaScriptEnabled(true);
        view.setWebViewClient(new WebViewClient());// Agregamos un WebViewCliente, esto permite que se sigan ejecutando los links dentro de este WebView

        // Comprueba la conexión a Internet
        ConnectivityManager connectivityManager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();

        // Si hay conexión a Internet la variable hayConexion es verdadera
        boolean hayConexion = networkInfo != null && networkInfo.isAvailable() && networkInfo.isConnected();

        // Si hay conexión a Internet se carga la Url, si no hay conexión a
        // Internet se carga el mensaje de error.
        if (hayConexion) {
            String url="http://www.app.coraltours.com.mx";
            view.loadUrl(url);
        } else {

            String errorHtml = "<html>" +
                    "<head></head>" +
                    "<body>" +
                    "    <h3>Se requiere acceso a internet para ver este contenido</h3>" +
                    "</body></html>";

            view.loadData(errorHtml, "text/html", null);
        }

        return v;
    }
}

However, now the problem is when you are connected but without internet or for example if you want to access a network of a hotel or restaurant, this appears instead of the error message that pograme.

What I'm looking for is a method that checks the connection to that page and can either connect to it or google it because of the error message that I programmed.

    
answered by 03.06.2018 в 05:59