coper_8888
06/06/14, 08:35:39
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
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