怎么实现javascript中调用java类中的方法

如题所述

为了方便网页和Android应用的交互,Android系统提供了WebView中JavaScript网页脚本调用Java类方法的机制。只要调用addJavascriptInterface方法即可映射一个Java对象到JavaScript对象上。
1、映射Java对象到JavaScript对象上

代码如下:

mWebView = (WebView) findViewById(R.id.wv_content);
mWebView.setVerticalScrollbarOverlay(true);
final WebSettings settings = mWebView.getSettings();
settings.setSupportZoom(true);

//WebView启用Javascript脚本执行
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
//映射Java对象到一个名为”js2java“的Javascript对象上
//JavaScript中可以通过"window.js2java"来调用Java对象的方法
mWebView.addJavascriptInterface(new JSInvokeClass(), "js2java");

代码如下:

/**网页Javascript调用接口**/
class JSInvokeClass {
public void back() {
activity.finish();
}
}

2、JavaScript调用Java对象示例
调用上述JSInvokeClass类对象的back方法,如下:

复制代码 代码如下:

window.js2java.back();
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-10-15
下面是一个AJAX实例:
// JavaScript Document
var xmlHttp;

function GetXmlHttpObject()
{
var xhr=null;
try
{
// Firefox, Opera 8.0+, Safari
xhr=new XMLHttpRequest();
}catch (e)
{
// Internet Explorer
try
{
xhr=new ActiveXObject("Msxml2.XMLHTTP");
}catch (e)
{
xhr=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xhr;
}

function getDataByDept(str)
{
xmlHttp = GetXmlHttpObject();
if(xmlHttp==null)
{
alert("很抱歉!您的浏览器不支持AJAX!");
return;
}

var url = "/intcard/jsp/employee.do?method=getByDept"
xmlHttp.onReadyStateChange=stateChanged;
xmlHttp.open("post",url,true);
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
xmlHttp.send("dept=" + str);

}

function stateChanged()
{
if(xmlHttp.readyState == 4)
{
var result = xmlHttp.responseText;
document.getElementById("select_employees").innerHTML = result;

}

}本回答被提问者和网友采纳
第2个回答  2015-06-17
java写一个servlet,读取json,处理完后输出json作为结果;
javascript通过ajax传入参数,并读取结果即可。
相似回答