public class MainActivity extendsActivity {
@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);final WebView myWebView =(WebView) findViewById(R.id.myWebView);
WebSettings settings=myWebView.getSettings();
settings.setJavaScriptEnabled(true);
myWebView.addJavascriptInterface(new JsInteration(), "control");
myWebView.setWebChromeClient(newWebChromeClient() {
});
myWebView.setWebViewClient(newWebViewClient() {
@Overridepublic voidonPageFinished(WebView view, String url) {super.onPageFinished(view, url);
testMethod(myWebView);
}
});
myWebView.loadUrl("file:///android_asset/js_java_interaction.html");
}private voidtestMethod(WebView webView) {
String call= "javascript:sayHello()";//call = "javascript:alertMessage(\"" + "content" + "\")";
call= "javascript:toastMessage(\"" + "content" + "\")";//call = "javascript:sumToJava(1,2)";
webView.loadUrl(call);
}public classJsInteration {
@JavascriptInterfacepublic voidtoastMessage(String message) {
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG)
.show();
}
@JavascriptInterfacepublic void onSumResult(intresult) {//Log.i(LOGTAG, "onSumResult result=" + result);
}
}
@Overridepublic booleanonCreateOptionsMenu(Menu menu) {//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);return true;
}
}