2016-04-25 5 views
0

Ich habe ein WebView in meiner Android-App, die ich benutze, um mich in meine App einzuloggen. Die URL, die ich in WebView laden, ist "https://accounts.google.com/ServiceLogin#identifier" mit ru zu meiner Website.Webview Lädt einige interne URLs und daher schwankt mein "Bitte warten" Loader

Vor dem Laden starte ich einen Fortschrittsdialog, der sagt "Bitte warten". um zu überprüfen, und andere Dinge ... Meine Loader schwankt als Show-hide-show-hide

@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(); 
       } 

Problem ist seit WebView einige interne URLs lädt.

Ich möchte es nur ausblenden, wenn die letzte Website geladen ist. Kann mir jemand helfen, was ich in diesem Fall machen soll?

Antwort

0

Sie können die geladene URL mit vwebView.getUrl(); in public void onPageFinished(WebView view, String inComingURL) überprüfen und nur wenn es mit der URL übereinstimmt, die Sie laden möchten, schließen Sie den Fortschrittsdialog. Möglicherweise müssen Sie Fälle behandeln, in denen die URL überhaupt nicht geladen wird.

+0

In diesem Fall i URL wissen beginnen, aber da die Drittanbieter-URL beginnt, ist ... ich weiß nicht, URL endet ... Das ist das Problem in diesem Fall – Tarun

+0

Wissen Sie, wie viele Zwischenseiten sein werden geladen? – Isj

+1

Nein ... URL ist eine dritte Partei Ich lade eine beliebige Anzahl von Seiten und sie können später ändern, auch wenn Sie es auf eine Nummer basierend auf einer Nummer hardcode. – Tarun

0

Sie können den Fortschritt beim Laden der Seite mit dem web chrome client überprüfen und sobald er 100% erreicht hat, können Sie den Dialog ausblenden.

Sie müssen den Webview-Client für Ihre Webansicht einstellen, um einen Rückruf zu erhalten.

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

Es leidet unter dem gleichen Problem ... Fortschritt wird 100% für Zwischenseiten und damit Fortschrittsbalken verbirgt und als für neue Zwischenseite .. es beginnt wieder ... – Tarun