(android studio) не может изменить страницу "Веб-страница недоступна" в веб-просмотре - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь отобразить свою собственную страницу "no inte rnet" в моем приложении. Я думаю, что-то может быть не так с моим кодом, я следовал этому учебнику, но по какой-то причине мой код продолжает отображать экран по умолчанию "Веб-страница недоступна".

public class MainActivity extends AppCompatActivity {

    private WebView webView;

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

        webView = (WebView) findViewById(R.id.webview);
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setAppCacheEnabled(true);
        webView.loadUrl("https://www.kasumushi.com/");

        webView.setWebViewClient(new WebViewClient() {
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                webView.loadUrl("file:///android_asset/error.html");

            }
        });
    }

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

}

Ответы [ 2 ]

0 голосов
/ 19 февраля 2020

, пожалуйста, проверьте приведенную ниже процедуру и попробуйте повторно протестировать вашу проблему.

                @Override
                public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                    Toast.makeText(MainActivity.this, "Error! " + description, Toast.LENGTH_SHORT).show();
                    //Clear WebView
                    try {
                        view.stopLoading();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    try {
                        view.clearView();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    if (view.canGoBack()) {
                        view.goBack();
                    }
                    String ErrorPagePath = "file:///android_asset/htmls/error.html";
                    view.loadUrl(ErrorPagePath);

                    super.onReceivedError(view, errorCode, description, failingUrl);
                }
            });
0 голосов
/ 19 февраля 2020
boolean errorOccurred = false; // Global variable

webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
        hideError();
        showProgress();
        Toast.makeText(Test.this, "start loading", Toast.LENGTH_SHORT).show();
        errorOccurred=false;
    }
    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        if (!errorOccurred) {
            hideError();
        }
        hideProgress();
        Toast.makeText(Test.this, "Web view was loaded", Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
        errorOccurred = true;
        hideProgress();
        showError();
        Toast.makeText(Test.this, "Could not load your page", Toast.LENGTH_SHORT).show();
        super.onReceivedError(view, errorCode, description, failingUrl);
        Toast.makeText(Test.this, "error", Toast.LENGTH_SHORT).show();
    }
});
...