2012-04-11 12 views
9

JSON biçimli verileri Android Web Görünümüm'den bir HTML sayfasına geçirmeye çalışıyorum. Ancak, uygulama çöker zaman ben, benim app amacı bu JSON verilerini yorumlamak da o kadar {"key":"data"}JSON ile biçimlendirilmiş veri bir Web Görünümü'nden bir HTML sayfasına nasıl geçirilir?

formatının olması bekliyorum orijinal JSON verilerini ayrıştırmak değerler dizisi haline oluşturmak çalışıyorum, ve bir HTML sayfasına gönderin. Bu doğru yaklaşım mı? Ben kopya

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 
+0

Post yığın izini Günlüklerinizdeki. – kabuko

+0

Emülatörü 4.0.3'e değiştirdim ve şimdi benim için çalıştı. – DBoy

cevap

8

: Burada

<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> 

günlük kedi ... İşte

...

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\"}"; 
    } 
} 

benim WebView kodudur Ve burada HTML kodu kodunuzu yapıştırır ve çalışır (veriyi göstermediğiniz için hiçbir şey gösterilmez), ancak Javascript'ten Android'e yapılan geri arama ilişkilidir ctly. Bu kodla kontrol edebilirsiniz:

WebView mWebView = (WebView) findViewById(R.id.webView1); 
    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.addJavascriptInterface(this, "webConnector"); 
    mWebView.addJavascriptInterface(this, "toaster"); 
    mWebView.loadUrl("file:///android_asset/table.html"); 
    } 

    public String load() { 
     Log.e("HelloJavascript","HelloJavascript"); 
     return "{\"key\":\"data\"}"; 
    } 

    public void print(String message){ 
     Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); 
    } 

Ve HTML

<html> 
    <head> 
    <title>Test</title> 
    <script type="text/javascript"> 

    function loader() { 
     var jsonData = window.webConnector.load(); 
     toaster.print(jsonData); 
    } 

    </script> 
    </head> 
    <body onload="loader()"> 
    Do nothing 
    </body> 
    </html> 
+0

Cevabı için teşekkür ederim Addev. Kodunu denedim, ama hala eziyor. Ancak, emülatörü 4.0.3'e değiştirdikten sonra çalıştı! – DBoy

+0

Daha önce ne ile çalıştığını bilmiyorum, ama bence JavaScript arayüzünde bir hata var 2.3 – Maarten

+0

"Uncaught TypeError: window.webConnector.load bir işlev değil", source: myaddress " Neden olduğunu biliyor musunuz? – Naeim

İlgili konular