java - 此页面有太多服务器重定向 Android

标签 java android android-webview

我正在尝试创建一个 Android 应用程序来链接到我 friend 的博客。它可以很好地链接到主页,但是当我按页面上的链接时,我收到错误“此页面有太多服务器重定向”。有什么想法吗?

public class WebViewHelper {

    private ProgressDialog mProgressDialog;

    //make it final so it will be accessible to setWebViewClient
    public WebView webview(final Context mContext) {

        // progress dialog
        mProgressDialog = new ProgressDialog(mContext);

        // new webview
        WebView web = new WebView(mContext);

        // web settings
        WebSettings webSettings = web.getSettings();

        // false
        webSettings.setSavePassword(false);
        webSettings.setSaveFormData(false);
        webSettings.setAppCacheEnabled(false);

        // true
        webSettings.setJavaScriptEnabled(true);
        webSettings.setSupportZoom(true);
        webSettings.setAllowFileAccess(true);
        webSettings.setLoadWithOverviewMode(true);
        webSettings.setUseWideViewPort(true);



        // other
        webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
        webSettings.setRenderPriority(RenderPriority.HIGH);

        web.setWebChromeClient(new WebChromeClient() {
            public void onProgressChanged(WebView view, int progress) {
                //show the user progress percentage
                mProgressDialog.setMessage("Loading... " + progress + "%");
            }
        });

        web.setWebViewClient(new WebViewClient() {

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

                //if there's an error loading the page, make a toast
                Toast.makeText(mContext, description + ".", Toast.LENGTH_SHORT)
                        .show();

            }

            public void onPageFinished(WebView view, String url) {
                //after loading page, remove loading page
                mProgressDialog.dismiss();
            }

            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                // TODO Auto-generated method stub
                super.onPageStarted(view, url, favicon);

                //on page started, show loading page
                mProgressDialog.setCancelable(false);
                mProgressDialog.setMessage("Loading...");
                mProgressDialog.show();

            }

        });

        // return the web view
        return web;
    }
}

最佳答案

您确定您尝试查看的网页没有问题吗?它可以在 native 浏览器中正常加载吗?

此外,为了强制 webview 处理在 webview 上单击的任何链接的加载,您需要覆盖 shouldOverrideUrlLoading() WebViewClient 中的方法。您的代码中缺少此内容。

PS:我想将此作为评论发布,但由于我没有足够的声誉,因此将其作为答案发布。

关于java - 此页面有太多服务器重定向 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21207696/

相关文章:

java - 如何通过 Java 流收集具有特定功能的现有列表元素的新列表?

java - 正则表达式 - 在字符后的某个字符串中查找数字然后编辑它们?

Android获取浏览器地址

android - 如何在 Linux 上构建适用于 Android 的 MuPDF

java - 在android studio中通过intent发送MultiMap类型数据结构

java - 如何使用 XStream 将同名节点反序列化为两个不同的类

java - 使用回调函数在线程中注册事件

android - WebView 在从 ICS 的下一个屏幕导航回 Webview 时显示透明颜色 (Android 4)

android:对话框或弹出窗口内的 webview

android - Webview保存密码轮换问题