一、Javascript调用Android代码
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
webView.addJavascriptInterface(new JavaScriptInterface(), "App");
新建JavaScriptInterface类,将js要调用的方法全部写在这里,方法记得加@JavascriptInterface注解
public class JavaScriptInterface {
@JavascriptInterface
public void jsCallNative() {
Log.d("TAG", "js call native method!");
}
}
//js中调用
function jsCallNative() {
javascript:App.jsCallNative();
}
二、Android调用Javascript代码
//调用无参方法
webview.loadUrl("javascript:JSMethod()"); //无法获取到返回值
//调用有参方法
mWebView.loadUrl("javascript:JSMethod('参数')");
如果你项目的minSdkVersion 为4.4 以上,可以通过这个方法获取到返回值。 如果需要适配4.4以下,可参考这篇文章[Android]WebView 调用JS方法获取返回值 不过现在4.4以下的手机很少见了。
webview.evaluateJavascript("javascript:JSMethod()", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
//value -> js方法的返回值
}
});