android本地java代码和javascript的交互
java调用js
mWebView = (WebView) findViewById(R.id.web_view)
mWebView.getSettings().setJavaScriptEnabled(true)
mWebView.addJavascriptInterface(this, "jsbridge")
mWebView.loadUrl("file:///android_asset/demo_java_js_call.html")
不带参数
mBtnJavaCallJsWithoutParam.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mWebView.loadUrl("javascript:java_call_js_without_param()");
}
});
带参数
mBtnJavaCallJsWithParam.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String param = "'a param from java'";
mWebView.loadUrl("javascript:java_call_js_with_param("
+ param
+ ")"
);
}
});
js调用java
mWebView.addJavascriptInterface(this, "jsbridge");
不带参数
js:
<a onClick="window.jsbridge.callFromJs()">点击这里-->调用java代码,无参数</a><br/>
java:
@JavascriptInterface
public void callFromJs() {
Toast.makeText(this, "callFromJs, 无参", Toast.LENGTH_LONG).show();
}
带参数
js:
<a onClick="window.jsbridge.callFromJsWithParam('来自js的参数')">点击这里-->调用java代码并传递参数</a><br/>
java:
@JavascriptInterface
public void callFromJsWithParam(String param) {
Toast.makeText(this, "callFromJs, 参数是:" + param, Toast.LENGTH_LONG).show();
}
其他