Christopher
- Forum-Beiträge: 38
28.09.2011, 15:37:09 via Website
28.09.2011 15:37:09 via Website
Hallo,
ich bin gerade dabei, in meine App ein Webview einzubinden. Das soll den Benutzer durch ein Menü führen, welches unter anderem Daten von meiner Activity anzeigen muss. Nun habe ich es schon hinbekommen, das Javascript auf Android Funktionen zugreifen kann also z.b. einen Toast auslösen kann, jedoch hänge ich gerade dabei, Javascript z.b. Datenklassen usw zur Verfügung zu stellen.
Momentan sieht mein Code etwa so aus:
Die Activity:
Das JavaScriptInterface:
Und der HTML und Javascriptteil:
Vielen Dank für euere Hilfe schonmal ;)
Viele Grüße
Christopher
ich bin gerade dabei, in meine App ein Webview einzubinden. Das soll den Benutzer durch ein Menü führen, welches unter anderem Daten von meiner Activity anzeigen muss. Nun habe ich es schon hinbekommen, das Javascript auf Android Funktionen zugreifen kann also z.b. einen Toast auslösen kann, jedoch hänge ich gerade dabei, Javascript z.b. Datenklassen usw zur Verfügung zu stellen.
Momentan sieht mein Code etwa so aus:
Die Activity:
1public class AssWebview extends Activity {
2
3 @Override
4 protected void onCreate(Bundle savedInstanceState) {
5 requestWindowFeature(Window.FEATURE_NO_TITLE);
6 setContentView(R.layout.assistent_webview);
7 WebView wv = (WebView) findViewById(R.id.wv_ass);
8 wv.getSettings().setJavaScriptEnabled(true);
9 wv.addJavascriptInterface(new JavaScriptInterface(this),"Android");
10 wv.loadUrl("file:///android_asset/....html");
11
12 super.onCreate(savedInstanceState);
13 }
14
15}
2
3 @Override
4 protected void onCreate(Bundle savedInstanceState) {
5 requestWindowFeature(Window.FEATURE_NO_TITLE);
6 setContentView(R.layout.assistent_webview);
7 WebView wv = (WebView) findViewById(R.id.wv_ass);
8 wv.getSettings().setJavaScriptEnabled(true);
9 wv.addJavascriptInterface(new JavaScriptInterface(this),"Android");
10 wv.loadUrl("file:///android_asset/....html");
11
12 super.onCreate(savedInstanceState);
13 }
14
15}
Das JavaScriptInterface:
1public class JavaScriptInterface {
2 Context mContext;
3
4 /** Instantiate the interface and set the context */
5 JavaScriptInterface(Context c) {
6 mContext = c;
7 }
8
9 /** Show a toast from the web page */
10 public void showToast(String toast) {
11 Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
12 }
13}
2 Context mContext;
3
4 /** Instantiate the interface and set the context */
5 JavaScriptInterface(Context c) {
6 mContext = c;
7 }
8
9 /** Show a toast from the web page */
10 public void showToast(String toast) {
11 Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
12 }
13}
Und der HTML und Javascriptteil:
1<input type="button" value="makeToast" onClick="showAndroidToast('Hello')" />
2<script type="text/javascript"> function showAndroidToast(toast) { Android.showToast(toast); }</script>
2<script type="text/javascript"> function showAndroidToast(toast) { Android.showToast(toast); }</script>
Vielen Dank für euere Hilfe schonmal ;)
Viele Grüße
Christopher
— geändert am 28.09.2011, 15:56:50
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.