# Daten von Java an Javascript übergeben möglich?



## chris7topher (29. Sep 2011)

Hallo,

ich habe folgendes Problem:
Ich entwickle unter Android eine App. Dort soll ich unter anderem eine Webview erstellen, die Daten aus dem Javateil in der Webview anzeigt.
Meine Vorstellung  ist bisher, das ich eine Website erstelle, und die Daten per Javascript einbinde. Nun fehlt mir nur jede Ahnung ob ich überhaupt auf die Daten zugreifen kann. Ich kann von Javascript Strings usw zurückgeben aber eben keien Daten übergeben.
Kann mir jemand sagen ob sowas in Javascript möglich ist und wenn wie? 
Bei den Daten handelt es sich um eine Liste, die Hashmaps mit Strings, Integer, Booleanwerte und JSONArrays enthält.

Vielen Dank!

Viele Grüße

Christopher


----------



## Andi_CH (29. Sep 2011)

Einfach so um sicher zu stellen, dass ich etwas richtig verstanden habe:

Javascript ist etwas, das vom client (z.B. meinem Browser) herunter geladen und ausgeführt wird.
Das Javaprogramm wie du es beschreibst, läuft auf dem Server.

Etwas schwierig da auf Variablen zuzugreifen - oder nicht?

Falls ich total falsch liege, erklär es mir bitte.


----------



## chris7topher (29. Sep 2011)

Also ich bin mittlerweile weiter gekommen und schaffe es nun auch auf Daten zugreifen zu können.

Das mache ich mit Hilfe eines Javascripts: 


```
<script type="text/javascript">
			function getValue(param1)
			{
				var result = android.getValue(param1);						}
		</script>
```

und in Java hab ich dazu ein JavaScriptInterface:


```
public class JavaScriptInterface {
	Context mContext;
	SaveData sd;

	/** Instantiate the interface and set the context */
	JavaScriptInterface(Context c) {
		mContext = c;
		sd = (SaveData) mContext.getApplicationContext();
	}

	public JSONObject getValue (int nr) throws JSONException
	{
		JSONObject jo = new JSONObject();
		jo.put("lable", sd.listPara.get(nr).get("lable"));
		jo.put("name", sd.listPara.get(nr).get("name"));
		jo.put("write", sd.listPara.get(nr).get("write"));
		
		
		return jo;	
	}
...
```

inwieweit das ganze mit einem JSONObject als Rückgabe klappt weiß ich noch nicht da bin ich gerad am forschen. Aber mit Strings usw kann ich so auf jeden Fall auf Daten zugreifen.

Viele Grüße

Christopher


----------



## chris7topher (29. Sep 2011)

Weiß jemand wie man das ganze auch mit String Arrays oder JSON Obejkten machen kann? Primitive Datentypen kann ich ohne Probleme austauschen aber sobald ich Array übergebe gehts nicht mehr.


----------



## MarderFahrer (30. Sep 2011)

Was genau geht denn mit einem JSON Objekt nicht? Kommt es denn korrekt an in der Webview?

Laut Android API sollte es gerade mit JSON Objekten gehen. Zumindest hab ich das dort herausgelesen. Vielleicht "hapert" es ja nur an der Weiterverarbeitung des JSON Objektes auf der JavaScript Seite.


----------



## chris7topher (30. Sep 2011)

Ich bekomme in meinem Javascript keine Daten. Ich habs nun aber anderes gelöst. Da es mit einem String problemlos funktioniert mache ich nun mein JSON Konstrukt erst zu einem String, und parse in Javascript dann den String wieder zu einen JSONObject.
Ist umständlich aber funktioniert wunderbar.


----------

