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

Respuesta
 
Herramientas
  #1  
Viejo 06/06/14, 08:35:39
Array

[xs_avatar]
coper_8888 coper_8888 no está en línea
Miembro del foro
 
Fecha de registro: oct 2008
Mensajes: 49

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
Array

[xs_avatar]
coper_8888 coper_8888 no está en línea
Miembro del foro
 
Fecha de registro: oct 2008
Mensajes: 49

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   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android

Herramientas


Hora actual: 14:03:20 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /