2015-09-02 64 views
1

如果URL以特定字符串結尾,我使用以下代碼來隱藏webview。URL加載後無法隱藏webview

webview.setWebViewClient(new WebViewClient() { 
    @Override 
    public void onPageFinished(WebView view, String url) { 
     if (url.endsWith("index.asp")) { 
      Toast.makeText(getActivity().getApplicationContext(),"Login successfull",Toast.LENGTH_LONG).show(); 
      webview.setVisibility(view.GONE); 
     } 
    } 
}); 

但仍web視圖如果URL以的index.asp(例如 「http://abc.def/index.asp」)

+0

爲什麼你隱藏webview'onPageFinished'?檢查url是否以該字符串結尾。如果沒有打開webview,否則不顯示它。 – hrskrs

+0

嘗試通過LinearLayout或FragmentView打包webview。你讀過這個http://stackoverflow.com/questions/7942219/show-hide-webview-issue? – Vyacheslav

+0

調試並測試您檢查的條件是否令人滿意。 –

回答

0

結束。如在此How to listen for a Webview finishing loading a URL in Android?有時的WebView網址討論將重定向回調仍然存在。這意味着onPageFinished()將調用several times(不止一次)。如果是這種情況,你應該檢查重定向國onPageFinished()方法藏漢爲您的網址回調

boolean loadingFinished = true; 
boolean redirect = false; 

mWebView.setWebViewClient(new WebViewClient() { 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String urlNewString) { 
     if (!loadingFinished) { 
      redirect = true; 
     } 

    loadingFinished = false; 
    view.loadUrl(urlNewString); 
    return true; 
    } 

    @Override 
    public void onPageStarted(WebView view, String url, Bitmap facIcon) { 
     loadingFinished = false; 
     //SHOW LOADING IF IT ISNT ALREADY VISIBLE 
    } 

    @Override 
    public void onPageFinished(WebView view, String url) { 
     if(!redirect){ 
      loadingFinished = true; 
     } 

     if(loadingFinished && !redirect){ 
     //HIDE LOADING IT HAS FINISHED 
       if (url.endsWith("index.asp")) { 
        webview.setVisibility(view.GONE); 
        } 

     } else{ 
      redirect = false; 
     } 

    } 
}); 

希望這將有助於

+0

我怎麼能使用這個 - string url =「」,這個url是webview獲取的,它是動態的。 – toadalskiii

+0

仍然無法正常工作。 – toadalskiii

+0

仍然無法正常工作。 ;( – toadalskiii

0

嘗試使用其他圖書館,如果你不想畫的內容在視圖上。 適用於instane,jsoup library。的

2

代替:

webview.setVisibility(view.GONE); 

使用:

view.setVisibility(view.GONE); 
+0

不起作用,webview仍然顯示。 – toadalskiii

+0

也許如果你發佈更多的代碼,我們可以幫助你,否則一個不好的解決方案可能是將'WebView'包裝在'FrameView'中,並且如果它符合你的條件,則顯示'frameview'另一個隱藏它'(Visibility.GONE)' – hrskrs

0

可以通過清除動畫檢查是否已設置的任何,因爲我曾與佈局不消失在setVisibility同樣的問題(View.Gone) ..試試這個

webview.clearAnimation(); 

它幫了我。

+0

沒有工作,webview仍然可見。 – toadalskiii