2011-07-11 101 views
5

我使用下面的代碼在webview中加載一個類似facebook的按鈕。Android facebook喜歡使用webview

  likeWebView = (WebView)findViewById(R.id.webview); 
      likeWebView.getSettings().setJavaScriptEnabled(true); 

      url ="http://www.facebook.com/plugins/like.php?" + 
      "href=" + URLEncoder.encode("http://developers.facebook.com/docs/opengraph/") 
      + "&" + 
      "layout=button_count&" + 
      "show_faces=0&" + 
      "width=90&" + 
      "height=24&" + 
      "locale=en_IN" + 
      "colorscheme=light" ; 

      likeWebView.loadUrl(url); 

的問題是,當用戶在這個過程中籤署重定向他到一個空白頁, 我如何截獲此網頁流量要求,並取消這個動作/關閉​​的WebView?

回答

2

在這種情況下,我實際上會使用WebViewClient的shouldOverrideUrlLoading方法。

likeWebView = (WebView)findViewById(R.id.webview); 
likeWebView.getSettings().setJavaScriptEnabled(true); 

likeWebView.setWebViewClient(new WebViewClient() { 
    public boolean shouldOverrideUrlLoading (WebView view, String url) { 
     if(url.contains("something")) return true; 
     return false; //Default is to not override unless our condition is met. 
    } 
}); 
3
public class WebViewPreLoad extends WebView{ 
public WebViewPreLoad(Context context) { 
     super(context); 
} 
    public void loadUrl(String str){ 
    if(str.contains("something")) 
      super.loadUrl(str); 
     else 
        hide this 
    } 
} 
當然

你必須找到正確的「如果」烏拉圭回合情況下

也做同樣的事情與

public void loadUrl(String url, Map<String,String> extraHeaders) 

變化super語句:

super.loadUrl(url, extraHeaders);