一、Javascript调用Android代码
//获取WebSettings对象
WebSettings settings = webView.getSettings();
//设置webview支持javascript
settings.setJavaScriptEnabled(true);
//绑定android对象到javascript对象,"obj"可以随意起名,与js端约定一致就好
webView.addJavascriptInterface(new JavaScriptInterface(), "obj");
//需要给js调用的方法全部写在这里,方法记得加@JavascriptInterface注解
public class JavaScriptInterface {
@JavascriptInterface
public void jsCallNative() {
Log.d("TAG", "js call native method!");
}
}
//js中调用
function jsCallNative() {
var money=toast*3;
javascript:obj.jsCallNative();
}
二、Android调用Javascript代码
//调用无参方法
webview.loadUrl("javascript:JSMethod()"); //无法获取到返回值
//调用有参方法
mWebView.loadUrl("javascript:JSMethod('参数')");
//如果你项目的minSdkVersion 为4.4 以上,可以通过这个方法获取到返回值
//现在4.4以下的手机很少见了,如果需要适配4.4以下,可参考这篇文章 https://www.jianshu.com/p/47ea6970d85d
webview.evaluateJavascript("javascript:JSMethod()", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
//value -> js方法的返回值
}
});
网友评论