Inyectando JavaScript en un WebView de Android
Ayer os contábamos como usar un WebView pero existen ocasiones en los
que necesitemos crear aplicaciones hibridas entre código web y código
Android, en estos casos es posible que ambas parte de la app se
comuniquen entre si como por ejemplo configurar desde la app algún
parámetro y en inyectarlo directamente en un formulario web o
seleccionar en configuraciones algún estilo y configurarlo mediante
javascript en el entorno web. A continuación os comentamos como inyectar
código javascript en un WebView para conseguir estos cometidos:
Para inyectar código javascript en un WebView en el que hemos cargado
previamente una url bastará con usar el método loadUrl(String url) pero
deberemos de tener una consideración. Si el código de la url sobre la
que trabajaremos no ha sido cargado por completo corremos el riesgo de
que la ejecución de nuestro código javascript provoque errores, es por
esto que para inyectarlo nos aseguraremos de que la carga se ha
realizado por completo. Para esto implementaremos un WebViewClient y
sobrescribiremos el método onPageFinished(WebView view, String url).
final
WebView webview = (WebView)findViewById(R.id.browser);
/* JavaScript must be enabled if you want it to work, obviously */
webview.getSettings().setJavaScriptEnabled(true);
/* WebViewClient must be set BEFORE calling loadUrl! */
webview.setWebViewClient(
new
WebViewClient() {
@Override
public
void
onPageFinished(WebView view, String url)
{
webview.loadUrl(
"javascript:(function() { "
+
"document.getElementsByTagName('body')[0].style.color = 'red'; "
+
"})()"
);
}
});
webview.loadUrl(
"http://programando-android.blogspot.com.es"
);
Comentarios
Publicar un comentario