2014-01-18 22 views
0

我正在嘗試創建一個Android應用,該應用會鏈接到我的朋友博客。它很好地鏈接到主頁,但是當我按下頁面上的鏈接時,我收到錯誤「此頁面有太多的服務器重定向」。有任何想法嗎?此頁面有太多的服務器重定向Android

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

回答

2

您確定您試圖查看的網頁沒有問題嗎?本機瀏覽器能夠正常加載嗎?

此外,爲了強制webview處理加載webview上點擊的任何鏈接,您需要在WebViewClient中覆蓋shouldOverrideUrlLoading()方法。你的代碼中缺少這個。 PS:我想把它作爲評論發佈,但因爲我沒有足夠的聲望而發佈它作爲答案。

+1

嗨,是的,事實證明這是一個網頁的問題。謝謝。 –

相關問題