2014-12-03 3 views
3

Я реализовал свой собственный веб-браузер с основными функциями (с кнопками «назад», «вперед», «Обновить» и «Стоп»). Все работает абсолютно нормально, но он ломается всякий раз, когда я загружаю в него URL перенаправления и пытаюсь вернуться, вызвав 'webview.goBack()'.Android: WebView goback() всегда перезагружает одну и ту же страницу для URL-адресов перенаправления.

Предполагается, что URL1 перенаправляет URL2. Поэтому, когда я пытаюсь открыть URL1, веб-просмотр автоматически перенаправляется на URL2. После полной загрузки URL2, если я попытаюсь вернуться на предыдущую страницу, вызвав «webview.goBack», веб-просмотр попытается загрузить URL1, который снова перенаправляется на URL2, и снова я прихожу на ту же страницу.

Вот мой код: «частный WebViewClient mWebViewClient = новый WebViewClient() {

public void onPageStarted(WebView view, String url, 
      android.graphics.Bitmap favicon) { 
     Log.d(TAG, "onPageStarted"); 
    }; 

    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      Log.d(TAG, "shouldOverrideUrlLoading"); 
      view.loadUrl(url); 
      return true; 
    }; 

    public void onPageFinished(WebView view, String url) { 
     Log.d(TAG, "onPageFinished"); 

    }; 
};' 

Любая помощь будет высоко оценен. Спасибо!

+0

Так где же вы ожидаете достичь, нажав назад на URL2? Я предполагаю, что URL 1 правильно? – Darpan

+0

@Darpan Да URL1. – Audumbar

+0

Тогда что еще вы ожидаете? Этот URL1 автоматически перенаправляет пользователя на URL2, так что он работает как ожидалось. Вы перешли на URL2, указав, что ваш URL1 был загружен. Вы не можете остановиться там, даже на настольном браузере. – Darpan

ответ

1

попробовать это:

public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      Log.d(TAG, "shouldOverrideUrlLoading"); 
      return false; 
    }; 
0
webView.setInitialScale(1); 
webView.getSettings().setJavaScriptEnabled(true); 
webView.getSettings().setLoadWithOverviewMode(true); 

webView.getSettings().setUserAgentString(
"Mozilla/5.0 (Linux; Android 5.1.1; Nexus 5 Build/LMY48B; wv) 
AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 
Chrome/43.0.2357.65 Mobile Safari/537.36" 
); 

webView.getSettings().setUseWideViewPort(true); 
webView.getSettings().setBuiltInZoomControls(true); 
webView.getSettings().setPluginState(WebSettings.PluginState.ON); 

webView.setWebViewClient(new WebViewClient() { 
       public void onReceivedError(WebView view, int errorCode, 
       String description, String failingUrl) { 
       }}); 


webView.loadUrl(url); 
Смежные вопросы