Ошибка внешней веб-страницы в Android WebView - PullRequest
0 голосов
/ 17 марта 2019

В Android Studio у меня есть код для MainActivity.java, чтобы открыть страницу с ошибкой «error.html», когда он не подключен к Интернету, все работает правильно .... однако в моем WordPress у меня есть плагинназывается "WP Colorbox", который открывается во всплывающих окнах / окнах внешних страниц .... но когда я запускаю приложение и открываю что-то с помощью этого плагина, не появляется мой error.html, когда интернет отключен, а общая ошибка "net :: ERR_ADRESS_UNREACHABLE"

что я могу сделать, чтобы в этом случае появился error.html?

best regads

import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

    WebView webView;

    SwipeRefreshLayout swipe;

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

        swipe = (SwipeRefreshLayout) findViewById(R.id.swipe);
        swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {

                LoadWeb();
            }
        });

        LoadWeb();

    }

    public void LoadWeb(){

        webView = (WebView) findViewById(R.id.webView);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setAppCacheEnabled(true);
        webView.loadUrl("http://www.myWEBSITE.com");
        swipe.setRefreshing(true);
        webView.setWebViewClient(new WebViewClient(){

            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {

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

            public  void  onPageFinished(WebView view, String url){

                //Hide the SwipeReefreshLayout

                swipe.setRefreshing(false);
            }

        });
    }

    @Override
    public void onBackPressed(){

        if (webView.canGoBack()){
            webView.goBack();
        }else {
            finish();
        }
    }
}
...