繁体   English   中英

(android studio) 无法更改 webview 中的“网页不可用”页面

[英](android studio) can't change the "Webpage not available" page in webview

我正在尝试在我的应用中显示我自己的“无互联网”页面。 我认为我的代码可能有问题,我一直在关注教程,但出于某种原因,我的代码一直显示默认的“网页不可用”屏幕。

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();
        }
    }

}
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();
    }
});

请您检查以下程序并尝试重新测试您的问题。

                @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);
                }
            });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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