2016-04-25 51 views
0

我在我的Android應用程序中有一個WebView,用於登錄到我的應用程序。 我在WebView中加載的URL是「https://accounts.google.com/ServiceLogin#identifier」,ru在我的網站上。Webview加載一些內部URL,因此我的「請稍候」加載程序波動

加載之前,我開始一個進度對話框,其中顯示「Please wait」。

@Override 
       public void onPageStarted(WebView view, String url, Bitmap favicon) { 
        super.onPageStarted(view, url, favicon); 
        Utils.mShowProgrossDiolog(mContext); 
       } 

       @Override 
       public void onPageFinished(WebView view, String inComingURL) { 
        super.onPageFinished(view, inComingURL); 
        Utils.mHideProgrossDiolog(); 
       } 

問題是因爲WebView加載了一些內部URL來驗證和其他事情......我的Loader波動如show-hide-show-hide。

我希望它只在加載最終站點時隱藏。有人可以幫我在這種情況下做什麼。

回答

0

您可以使用vwebView.getUrl();public void onPageFinished(WebView view, String inComingURL)中檢查加載的URL,只有當它與要加載的URL匹配時纔會關閉進度對話框。你可能不得不處理這樣的情況,比如url根本不加載。

+0

在這種情況下,我知道開始URL但因爲URL開始是第三方的......我不知道結尾的網址...這就是在這種情況下,問題 – Tarun

+0

你知道有多少中間頁正在裝? – Isj

+1

否... URL是第三方我加載任何數量的頁面,他們可能會稍後改變,即使硬編碼到某個數字的基礎上的一些數字。 – Tarun

0

您可以通過web chrome客戶端檢查頁面加載進度,一旦達到100%,您可以隱藏對話框。

private class MyWebChromeClient extends WebChromeClient{ 
    @Override 
    public void onProgressChanged(WebView view, int newProgress) { 
     super.onProgressChanged(view, newProgress); 
     if(newProgress==100){ 
      progressDialog.dismiss(); 
     } 
    } 
} 

您必須爲您的web視圖設置webview客戶端才能獲得回調。

webView.setWebChromeClient(new MyWebChromeClient()); 
+1

它遭受同樣的問題...中間頁面進度變爲100%,因此進度條隱藏,並且比新的中間頁面..再次開始... – Tarun