2014-12-03 70 views
3

我已經實現了我自己的基本功能(帶有後退,前進,刷新和停止按鈕)的自定義Web瀏覽器。所有工作都非常好,但每當我加載重定向網址時就會中斷,並嘗試通過調用'webview.goBack()'返回。Android:WebView goback()總是重新載入重定向URL的相同頁面

讓我們假設URL1重定向到URL2。所以,每當我嘗試打開URL1時,webview都會自動重定向到URL2。如果我嘗試通過調用'webview.goBack'返回上一頁,則完全加載URL2後,webview將嘗試加載URL1,該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 2014-12-03 12:02:58

+0

@Darpan是URL1。 – Audumbar 2014-12-03 12:15:15

+0

那你還期望什麼?此URL1會自動將用戶重定向到URL2,以便按預期工作。您移至URL2表示您的URL1已被加載。即使在桌面瀏覽器上,您也無法在此停留。 – Darpan 2014-12-03 12:37:56

回答

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); 
相關問題