2011-07-11 17 views
5

Uso el siguiente código para cargar un botón de me gusta en Facebook dentro de una vista web.Android facebook como usar 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); 

el problema es cuando el usuario inicia sesión en el proceso le redirige a una página en blanco, ¿Cómo puedo interceptar esta solicitud vista web y cancelar esta acción/cierre vista web?

Respuesta

2

En este caso, realmente usaría el método mustOverrideUrlLoading de WebViewClient.

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 
    } 
} 

por supuesto, tendrá que encontrar la correcta "si" por ur caso

también, hacer lo mismo con

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

cambio de la sentencia super a:

super.loadUrl(url, extraHeaders);