2014-01-18 3 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 обрабатывать загрузку любой ссылки, нажатой на веб-просмотр, вам необходимо переопределить метод shouldOverrideUrlLoading() в WebViewClient. Это отсутствует в вашем коде.

PS: Я хочу опубликовать это как комментарий, но разместил его как ответ, поскольку у меня недостаточно репутации.

+1

Привет, Да, это оказалось проблемой с веб-страницей. Благодарю. –

Смежные вопросы