Android facebook como usar la vista web
Utilizo el código siguiente para cargar un botón de Facebook como dentro de una 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 está firmando en el proceso lo redirecciona a una página en blanco, ¿cómo puedo interceptar esta solicitud de webview y cancelar esta acción / cerrar webview?
- Habilitación de JavaScript general en WebViewClient
- Lógica para usar varias vistas web en TabLayout para manejar problemas de memoria
- Android WebViewClient onReceivedError no se llama para un error 404
- ¿Cómo implementar pull down refresh en android?
- Entrada de archivo HTML en android webview (android 4.4, kitkat)
- Las cookies no se almacenan en la API de Webview android 21 y superiores
- Vista web de Android, inicie la actividad ACTION_VIEW cuando la URL no pueda ser manejada por webview
- ShouldOverrideUrlLoading se llama SOLAMENTE para ALGUNAS páginas web
- ¿Es -webkit-column-break-before compatible con Android 2.3 WebView?
- Archivos locales de Android WebView + AJAX
- Desbordamiento de iframe de Webview
- La página de vista web de Android no carga correctamente la página
- Cómo desplazar WebView a la parte superior de android?
En realidad, utilizaría el método shouldOverrideUrlLoading de un WebViewClient en este caso.
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. } });
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 usted tendrá que encontrar el "si" correcto para su caso
Hacer lo mismo con
public void loadUrl(String url, Map<String,String> extraHeaders)
Cambie la declaración super a:
super.loadUrl(url, extraHeaders);
- ¿Cómo hacer que un objeto sea accesible para todas las actividades de un programa Android?
- Android – manera correcta de usar AsyncTasks?