Android与js互调

一、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() {
            @Override
            public void onReceiveValue(String value) {
                //value -> js方法的返回值
            }
        });

你可能感兴趣的:(Android与js互调)