WebView 是现在项目中使用平率非常高的控件, 本文重点讲述在WebView中,js如何调用activity中的java方法,以及activity中如何调用js方法。
首先设置javascript权限
WebSettings
WebSetting webSetting = webView.getSettings();
// 设置javascript为可用
webSetting.setJavaScriptEnabled(true);
// 添加js调用接口
webView.addJavascriptinterface(myJsInterface(), "jsInterface");
接下来实现上面的方法
private Object myJsInterface(){
Object myInterface = new Object(){
// 提供js调用方法,无参
// js中:var str = window.jsInterface.myInterface ();
public String jsCallJava(){
return "js Call java";
}
// 提供js调用方法,带参
// js中:var str = window.jsInterface.jsCallJava2("hello i from js");
public String jsCallJava2(final String str){
return "js Call java: " + str;
}
// java调用js方法
public void javaCallJs(){
// 执行js需要在ui线程中运行
runOnUiThread(new Runable(){
public void run(){
webView.loadUrl("javascript: callFromJava()");
}
});
}
// java调用带参数的js方法
public void javaCallJs2(){
// 执行js需要在ui线程中运行
runOnUiThread(new Runable(){
public void run(){
webView.loadUrl("javascript: callFromJava('param-from-java')");
}
});
}
};
return myInterface;
}
结束