① Android调用WebView的JS
第一步,开启JS调用
WebSettings settings = webview.getSettings();
//设置与Js交互的权限
settings.setJavaScriptEnabled(true);第二步,在HTML文件中写好要被调用的JS方法
function javaCallJs(params){
$('#closegrjkda').html(params);
}上面的params是从Android端传进去的参数
注意:这个JS函数必须是在全局范围的,这样才能被访问到,不要放进局部,例如:
$(function(){
//不能放进这里
});第三步,在Android直接调用
webview.loadUrl("javascript:javaCallJs('params')");注意:参数的传递一定要严格按照JS的写法,例如上面传递一个字符串,必须加单引号,其次,如果要改变HTML中的UI,必须在主线程操作,如下
runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d(TAG, "run: ");
webview.loadUrl("javascript:javaCallJs('params')");
}
});上面Android调用WebView的JS完成。
②JS调用Android的方法
第一步,先写一个JS接口类,如下:
public class JsInterface {
/**
* @JavascriptInterface 这个是一定要有的,否则不可以
* @param param
*/
@JavascriptInterface
public void jsCallJava(final String param) {
Log.d(TAG, "jsCallJava: "+ param);
}
}注意: @JavascriptInterface 这个是一定要有的,否则调用失败
第二步,把上面写好的接口类,new 一个实例,传递到HTML页面
webview.addJavascriptInterface(new JsInterface(), "jsInterface");注意:第二个参数,jsInterface 就是在HTML可以使用的实例,可以用jsInterface.jsCallJava(“123”)这样的方式调用函数。
第三步,在HTML直接调用
window.jsInterface.jsCallJava("jsCallJava");注意:jsInterface就是传递过来的对象
至此,JS调用Android的方法完成
















