Cómo pasar datos en formato JSON de una vista web a una página HTML
Estoy intentando pasar datos de formato JSON de mi WebView de Android a una página HTML. Sin embargo, la aplicación se bloquea cada vez que intento analizar los datos JSON originales, que espero que tengan el formato{"key":"data"}
El objetivo de mi aplicación será interpretar estos datos JSON, formarlos en una matriz de valores y enviarlos a una página HTML. ¿Es este el enfoque correcto a tomar?
Aquí está mi código de WebView ...
<code>public class MyWebView extends Activity { WebView mWebView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.web_view); mWebView = (WebView) findViewById(R.id.webviewSch); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.addJavascriptInterface(this, "webConnector"); mWebView.loadUrl("file:///android_asset/table.html"); } public String load() { return "{\"key\":\"data\"}"; } } </code>
Y aquí está el código HTML ...
<code><html> <head> <title>Test</title> <script type="text/javascript"> function loader() { var jsonData = window.webConnector.load(); } </script> </head> <body onload="loader()"> Do nothing </body> </html> </code>
Aquí está el gato de registro:
<code>04-15 00:35:44.551: W/dalvikvm(442): JNI WARNING: jarray 0x4053f1a0 points to non-array object (Ljava/lang/String;) 04-15 00:35:44.551: I/dalvikvm(442): "WebViewCoreThread" prio=5 tid=9 NATIVE 04-15 00:35:44.551: I/dalvikvm(442): | group="main" sCount=0 dsCount=0 obj=0x4051bcc0 self=0x19b200 04-15 00:35:44.551: I/dalvikvm(442): | sysTid=451 nice=0 sched=0/0 cgrp=default handle=1684280 04-15 00:35:44.551: I/dalvikvm(442): | schedstat=( 206004592 365607782 69 ) 04-15 00:35:44.551: I/dalvikvm(442): at android.webkit.LoadListener.nativeFinished(Native Method) 04-15 00:35:44.551: I/dalvikvm(442): at android.webkit.LoadListener.nativeFinished(Native Method) 04-15 00:35:44.551: I/dalvikvm(442): at android.webkit.LoadListener.tearDown(LoadListener.java:1200) 04-15 00:35:44.551: I/dalvikvm(442): at android.webkit.LoadListener.handleEndData(LoadListener.java:721) 04-15 00:35:44.551: I/dalvikvm(442): at android.webkit.LoadListener.handleMessage(LoadListener.java:219) 04-15 00:35:44.551: I/dalvikvm(442): at android.os.Handler.dispatchMessage(Handler.java:99) 04-15 00:35:44.551: I/dalvikvm(442): at android.os.Looper.loop(Looper.java:130) 04-15 00:35:44.551: I/dalvikvm(442): at android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:629) 04-15 00:35:44.551: I/dalvikvm(442): at java.lang.Thread.run(Thread.java:1019) 04-15 00:35:44.551: E/dalvikvm(442): VM aborting </code>