当前位置:  开发笔记 > 编程语言 > 正文

如果页面是"未找到404页面",如何从Android WebView查看?

如何解决《如果页面是"未找到404页面",如何从AndroidWebView查看?》经验,为你挑选了2个好方法。

我想从WebView检查"找不到404页面",如果它是404,那么我将恢复到上一页.Ty为你的帮助

编辑我想看的网页是纯.jpg 1.jpg 2.jpg 3.jpg但我不知道有多少图像存在.因此,如果有人可以提出另一种方法,欢迎他这样做.



1> Alexey Ozero..:

启动SDK 23(Android M),您可以使用onReceivedHttpError方法来捕获404和其他HTTP错误.只需覆盖你的内心WebViewClient

@Override
public void onReceivedHttpError (WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
    Toast.makeText(view.getContext(), "HTTP error "+errorResponse.getStatusCode(), Toast.LENGTH_LONG).show();
}


请记住,将从文档中为任何资源(iframe,图像等)调用此回调,而不只是针对主页``

2> LordMarty..:

我可能要晚了几年,但这是我必须解决的问题,因为这些答案都不起作用.

我最终使用onReceivedTitle并将标题与页面标题(在本例中为"找不到页面")从我试图打开的网站进行比较.

webview.setWebChromeClient(new WebChromeClient() {
        @Override
        public void onReceivedTitle(WebView view, String title) {
            // TODO Auto-generated method stub
            super.onReceivedTitle(view, title);


            CharSequence pnotfound = "The page cannot be found";
            if (title.contains(pnotfound)) {
                pagenotfound = true;
                view.stopLoading();
                webview.loadUrl("https://www.google.com/search?hl=en&q=stackoverflow");

            }
        }

        public void onProgressChanged(WebView view, int progress) {
            activity.setProgress(progress * 1000);
        }
    });

webview.setWebViewClient(new WebViewClient() {
        @Override
        public void onReceivedError(WebView view, int errorCode,
                String description, String failingUrl) {

            Toast.makeText(activity, "Oh no! " + description,
                    Toast.LENGTH_SHORT).show();

        }

        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);

            return true;
        }

        public void onPageFinished(WebView view, String url) {
            if (dialog.isShowing()) {
                dialog.dismiss();

            }
        }
    });

"pnotfound"将因站点而异.但通常一个站点使用相同的"页面未找到",因此您可以使用站点上的标题.如果您使用多个站点,则可能需要添加其他if.

希望它对某人有帮助.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有