参考链接https://blog.csdn.net/carson_ho/article/details/64904691
JS调原生
1.定义一个交互类
private class MJavascriptInterface {
private Context context;
public MJavascriptInterface(Context context) {
super();
this.context = context;
}
//原生方法供JS调用
@JavascriptInterface
public void jsCallWebView(String url) {
//Android代码逻辑
}
}
2. WebView开启JS交互
webSettings.setJavaScriptEnabled(true);//设置js可用
MJavascriptInterface mJavascriptInterface = new MJavascriptInterface(this); //初始化本地方法接口
webView.addJavascriptInterface(mJavascriptInterface, "XXX");//添加到webview
3.JS调用原生方法
window.XXX.jsCallWebView(param);
XXX就是第2步中的XXX
原生调JS
webView.loadUrl("javascript:callJS()"); //不带参数
webView.loadUrl("javascript:callJS('" + msg + "')");
其中javascript:是固定的
callJS是js里面定义的方法名
msg是方法中的参数
webView.loadUrl("javascript:"+callback+"()");
其中callback是动态传递的方法名字