Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 06/06/14, 08:35:39
Avatar de coper_8888
coper_8888 coper_8888 no está en línea
Miembro del foro
Mensajes: 49
 
Fecha de registro: oct 2008
Mensajes: 49
Mencionado: 1 comentarios
Tagged: 0 hilos
problema cargar codigo javascript a partir de android 4.1

Buenas,

Tengo un problema para ejecutar código javascript en versiones posteriores de android 4.1. Tengo un webview que cargo de manera local un archivo html que posee una gráfica highchats, utilizo el método addjavascriptinterface para declarar una clase que posee métodos para inyectar datos en javascript. Funciona todo pero en android 4.1.

He utilizado como se declara la documentación la anotación @JavascriptInterface encima de los métodos los cuales intento accedes en javascript pero no hay manera.

El código sería el siguiente:

webView_Analisis = (WebView) view.findViewById(R.id.webView_Analisis);

webView_Analisis.setWebViewClient(new WebViewClient());
WebSettings settings = webView_Analisis.getSettings();
settings.setJavaScriptEnabled(true);
webView_Analisis.addJavascriptInterface(new JavaScriptInterface(), "jsinterface");
webView_Analisis.loadUrl("file:///android_asset/index.html");

El código de la clase puente entre el código java android y javascript sería la siguiente:

public class JavaScriptInterface
{

JavaScriptInterface(){}

@JavascriptInterface
public JsonArray getLista()
{
return jsonArrayListaObjAnalisis;
}
}

Como intento pasar un tipo completo de datos como un array, he convertido el array a json y es este json lo que convierto y reconstruyo en javascript y utilizado para pintar la gráfica. Como digo, funciona bien pero en android 4.1, si alguien puede echarme una mano para hacer funcionar en versiones posteriores sería de gran ayuda.

Un saludo, gracias
Responder Con Cita


  #2  
Viejo 06/06/14, 14:28:06
Avatar de coper_8888
coper_8888 coper_8888 no está en línea
Miembro del foro
Mensajes: 49
 
Fecha de registro: oct 2008
Mensajes: 49
Mencionado: 1 comentarios
Tagged: 0 hilos
Solucionado, bastaba con el siguiente código. Elimino la utilización de la clase puente para comunicarme con javascript y simplemente llamo a la función declarada en javascript a la que le paso mi json.

webView_Analisis.setWebViewClient(new WebViewClient(){

@Override
public void onPageFinished(WebView view, String url) {

view.loadUrl("javascript: pintarGrafica('"+jsonArrayListaObjAnalisis+"')");

}

});

Un saludo!!
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 13:09:32 (GMT +2)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007